Giter VIP home page Giter VIP logo

Comments (14)

edwardmp avatar edwardmp commented on August 22, 2024

@jasperblues
Decided to investigate this. It appears the problem does not originate in your code. As I understand it, XCodeEditor will write XML output to the pbxproj file. Xcode then converts it to another format (PLIST?). When I close Xcode and the conversion does not take place, all is file. XcodeEditor correctly outputs the Emoji.

However, when Xcode is open and the conversion happens, the emoji are corrupted. I think this is a bug in Xcode, I'll try to file a bug report at Apple.

Correct XML output by XcodeEditor:
schermafbeelding 2016-06-22 om 19 26 15

Corrupted conversion by Xcode:
schermafbeelding 2016-06-22 om 19 46 22

Possibly related to http://openradar.appspot.com/18512876 and http://openradar.appspot.com/13827044

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

I filed a radar, copy listed here.
I could reproduce the bug by converting the pbxproj file to XML using plutil. So this issue has nothing to do with XcodeEditor itself, although it is still important to resolve.

Before Apple fixes this, I suggest stripping emoji from build script names?

from xcodeeditor.

jasperblues avatar jasperblues commented on August 22, 2024

@edwardmp Thanks for the information. I noticed some other projects (eg CocoaPods) recently stopped using emoji in the project files, so that makes sense.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

@jasperblues
Yes indeed, found a few issues in the CocoaPods repo that might be related. Let's see how (or if) Apple responds. Seems they are replacing the emoji with [CP] CocoaPods/CocoaPods#5382

The major issue here by the way is not necessarily the emoji no longer working: I noticed my pbxproj grew to 200 mb and Xcode freezing because somehow the affected build phases would get added multiple times. For the latter I'm not sure whether this is because of a deeper issue in Xcode or in XcodeEditor.

Anyway, if I create a pull request for (at least temporarily) stripping emoji would you consider merging it in?

from xcodeeditor.

jasperblues avatar jasperblues commented on August 22, 2024

Yes, that sounds like an excellent temporary solution.

Speaking of bugs. There's a few bug fixes on another branch that I did for a client using this project. I had to strip out generics as they were on an earlier platform. . . need to merge those back some time.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

OK great, I'll see what I can make of it the coming days. Aside for this, your library has been working well for me, so thanks for creating it 👍

from xcodeeditor.

jasperblues avatar jasperblues commented on August 22, 2024

:) You're welcome buddy. Thanks for using and, if you feel like it, contributing too.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

@jasperblues
I created a pull request. I found this neat NSString category which does the job well. But since you currently don't have any dependencies, I just copied these 2 files to Utils.

I also added tests for it. However, as mentioned in the pull request the changes are not written to the project file yet. Using the debugger I see that all emojis are stripped from XCBuildShellScript & XCBuildShellScriptDefinition. Maybe you need to mark them as dirty somewhere so that the changes will be written to file.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

@jasperblues you merged in my stuff but did you see my question to you as the implementation was not complete yet.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

Got a response from Apple today:

There are no plans to address this based on the following:

We do not officially support the XML file format or workflows involving it.

Thus, it is important that we remove all emoji in all build scripts, but I'm still waiting for your input how to achieve this @jasperblues

from xcodeeditor.

jasperblues avatar jasperblues commented on August 22, 2024

@edwardmp sorry for the delay in reply! Would you be able to check in a broken test? (It doesn't have to have asserts that fail if that is hard - just eyeball the plist file). I could then make it pass for you.

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

@jasperblues
Hi Jasper sorry didn't have time until now to respond.

The issue is that the updated build scripts (without emoji) are somehow not applied/saved properly. When the project is saved I see the old build script names as if nothing has changed. This may be in some part of the code that determines which stuff should get overwritten? Any clue? If not I can try to make a test case but this will take me some more time

from xcodeeditor.

edwardmp avatar edwardmp commented on August 22, 2024

Hi @jasperblues
Did you see my previous message? I'd like to know since a project I develop is delayed solely by the emoji issue. Hope to hear from you soon. Thanks.

from xcodeeditor.

jasperblues avatar jasperblues commented on August 22, 2024

@edwardmp I'm snowed in with work at the moment, so won't be able to look at it for a while.

from xcodeeditor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.