Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bitcode problem exporting with xcodebuild. #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ahamilt
Copy link

@ahamilt ahamilt commented Mar 27, 2017

Exporting archive using xcodebuild -exportOptionsPlist is
failing with the 1.3 release of Multi-OS Engine. The export
fails with an error like this:

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices
found." UserInfo={NSLocalizedDescription=No applicable devices found.}

More details in IDEDistribution.standard.log:

"Failed to verify bitcode in MOE.framework/MOE:\nerror: Bundle only
contains bitcode-marker
/var/folders/vb/zpw1mfn94yj6rq6s7byp403r0000gn/T/IDEDistributionThinningStep.qN8/Payload/testfoo.app/Frameworks/MOE.framework/MOE
(armv7)\n\n";

The root problem is that the following file contains a bitcode marker
section, which was not present when using Multi-OS engine 1.2.5:

build/moe/xcodebuild/Release-iphoneos/testfoo.app/Frameworks/MOE.framework/MOE

You can see the section by running the following command:

xcrun size -x -m -l MOE

The difference between 1.2.5 and 1.3 is that 1.2.5 was embedding
the MOE.framework using the xcode project configuration, which
copied the framework with STRIP_BITCODE_FROM_COPIED_FILES set to
the default YES. This stripped out the bitcode marker section
and segment. However 1.3 is copying the framework using a build
script, which doesn't strip out the section.

This commit adds a call to strip out the bitcode from the framework
using the 'bitcode_strip' tool.

Exporting archive using xcodebuild -exportOptionsPlist is
failing with the 1.3 release of Multi-OS Engine. The export
fails with an error like this:

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices
found." UserInfo={NSLocalizedDescription=No applicable devices found.}

More details in IDEDistribution.standard.log:

"Failed to verify bitcode in MOE.framework/MOE:\nerror: Bundle only
contains bitcode-marker
/var/folders/vb/zpw1mfn94yj6rq6s7byp403r0000gn/T/IDEDistributionThinningStep.qN8/Payload/testfoo.app/Frameworks/MOE.framework/MOE
(armv7)\n\n";

The root problem is that the following file contains a bitcode marker
section, which was not present when using Multi-OS engine 1.2.5:

build/moe/xcodebuild/Release-iphoneos/testfoo.app/Frameworks/MOE.framework/MOE

You can see the section by running the following command:

xcrun size -x -m -l MOE

The difference between 1.2.5 and 1.3 is that 1.2.5 was embedding
the MOE.framework using the xcode project configuration, which
copied the framework with STRIP_BITCODE_FROM_COPIED_FILES set to
the default YES. This stripped out the bitcode marker section
and segment. However 1.3 is copying the framework using a build
script, which doesn't strip out the section.

This commit adds a call to strip out the bitcode from the framework
using the 'bitcode_strip' tool.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant