Xcode 7.1.1: iOS frameworks containing simulator slices can't be submitted to the App Store

Originator:steipete
Number:rdar://23681704 Date Originated:29-Nov-2015 11:14 AM
Status:Open Resolved:
Product:Developer Tools Product Version:Xcode 7.1.1 and 7.1b4
Classification:Other Bug Reproducible:Always
 
Summary:
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.

Expected Results:
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.

Actual Results:
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.

Regression:
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.

Notes:
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. (This is a duplicate of rdar://19209161 with updated versions - nothing changed since Xcode 6 here)

Comments


Please note: 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!