Xcode 6.1.1 & 6.2: iOS frameworks containing simulator slices can't be submitted to the App Store
||Date Originated:||10-Dec-2014 12:58 PM|
||Resolved:||Duplicate of 18431785 (Open)|
||Product Version:||Xcode 6.1.1 (6A2006)|
If an iOS framework contains a fat binary with simulator (i386/x86_64) and device (ARM) slices, any application that attempts to embed that framework will be rejected from App Store submission.
Steps to Reproduce:
1. Given an iOS framework, build it for simulator use.
2. Build the same framework for device use.
3. Run `lipo -create` to combine the two binaries for the frameworks, embedding the result in one of the original bundles.
4. Merge the contents of “Modules” folders inside each framework bundle, so the resulting bundle contains Swift modules for all simulator and device architectures.
5. Create an application project, and drag the merged framework bundle into the “Embedded Binaries” section of the application target’s settings.
6. Attempt to submit the application to the App Store.
Attached is an example of such an application project (SubmissionFailure.xcodeproj), with a framework (Realm.framework) demonstrating the issue.
App Store submission would succeed. Perhaps Xcode would automatically strip out the simulator slices/symbols/modules, but this is not (strictly speaking) necessary for this bug to be fixed.
Spurious errors about the application referencing “non-public symbols,” like __bzero. See https://github.com/realm/realm-cocoa/issues/1163 for a screenshot of those errors.
This does not occur with static libraries (or static pseudo-frameworks), because only the correct slice gets statically linked into the application binary in the first place.
More discussion about this issue can be found in https://github.com/realm/realm-cocoa/issues/1163 and https://github.com/Carthage/Carthage/issues/188.
Reports posted here will not necessarily be seen by Apple.
All problems should be submitted at bugreport.apple.com before they are posted here.
Please only post information for Radars that you have filed yourself, and please do
not include Apple confidential information in your posts. Thank you!