-
Notifications
You must be signed in to change notification settings - Fork 737
xctool fails to query the list of test cases when building w/ ONLY_ACTIVE_ARCH=NO #203
Comments
How should we go about making a universal binary for things like otest-query-ios? The biggest problem is that we need to up the version of iOS using |
I have an idea -- we can build a 32-bit version targeting 5.0 and a 64-bit targeting 7.0, and |
A PR for building universal binaries is up: #211 |
A PR that enables 64-bit application tests via |
Hey @fpotter - any updates on this? not sure if this is related: travis-ci/travis-ci#2179 |
Thank you for reporting this issue and appreciate your patience. We've notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed. |
@sandervandenbrink discovered the problem (see #170 (comment))
As of the Xcode 5 GM, if ONLY_ACTIVE_ARCH=NO is supplied when doing simulator builds, xcodebuild/xctool will produce Universal simulator binaries (i.e. i386 + x86_64).
The problem happens when we need to query the test cases in an Application Test bundle. To do that, we we have to load the main .app while injecting
otest-query-ios-dylib.dylib
. With ONLY_ACTIVE_ARCH=NO, the .app is Universal, and when we launch it, we'll get the x86_64 flavor by default. But, sinceotest-query-ios-dylib.dylib
is still i386 only, the dylib fails to load and the process crashes.Short-term fix:
Force the i386 flavor. See #200. The downside is that we won't properly support the 64-bit simulator, but that's OK since a whole bunch of other work has to happen to support that anyway.
Long-term fix:
Make otest-query and otest-shim Universal binaries, and use the
-destination
argument to decide which flavor to use.If destination is "iPhone Retina (4-inch 64-bit)", we should force the x86_64 flavor. Otherwise, we should force the i386 flavor.
The text was updated successfully, but these errors were encountered: