Comments (14)
@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:
Corrupted conversion by Xcode:
Possibly related to http://openradar.appspot.com/18512876 and http://openradar.appspot.com/13827044
from xcodeeditor.
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.
@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.
@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.
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.
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.
:) You're welcome buddy. Thanks for using and, if you feel like it, contributing too.
from xcodeeditor.
@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.
@jasperblues you merged in my stuff but did you see my question to you as the implementation was not complete yet.
from xcodeeditor.
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.
@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.
@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.
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.
@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)
- addframework failed in xcode7 HOT 11
- ESA.Sales.Foobar.xib: iOS xibs do not support target device type "mac" HOT 1
- Linker Error because of duplicate symbols HOT 3
- Update Compile Sources HOT 4
- Embed framework HOT 9
- xcconfig not work in project and target base configuration!
- how can i remove an existing xxx.framework(not imported from apple's libraries) from my project HOT 4
- Carthage: Dependency "XcodeEditor" has no shared framework schemes
- Add file to dynamic framework target Public/Private/Project Build Phases > Headers?
- Make scheme shared
- removeResourceWithKey and removeMemberWithKey need documentation
- [Question] Does XCodeEditor support sorting targets in alphabetical order?
- feature - determine project / name directory path / project file from key window HOT 4
- Doesn't get all the XCBuildConfiguration's in the file HOT 2
- "Project file of type file.storyboard can't become a build file." HOT 1
- Support for Copy Bundle Phases HOT 6
- Create new Target & Scheme HOT 1
- EXC_BAD_ACCESS from xce_stringFromMemberType HOT 1
- how to add some .strings files to project? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xcodeeditor.