As of Xcode 7†, the xcodebuild
export archive step has been giving us errors.
Build command
xcodebuild -exportArchive -archivePath "path/to/Thing.xcarchive" \
-exportPath "path/to/" \
-exportOptionsPlist path/to/PackageOptions-adhoc.plist
yields
2015-10-08 16:28:27.409 xcodebuild[62682:464728] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7ff1a42d23f0>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 {NSLocalizedDescription=No applicable devices found.}
error: exportArchive: No applicable devices found.
Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 {NSLocalizedDescription=No applicable devices found.}
** EXPORT FAILED **
What gives? How to fix?
† 7.0 & 7.0.1, on Mavericks.
In our case, this was a conflict with our use of a non-system ruby via rvm. To fix, you need to call xcodebuild
inside the context of rvm use system
. But doing this is complicated by the fact that using rvm
in scripts is harder than it should be.
We created a script which fixed this for us:
#!/bin/bash --login
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm use system
xcodebuild "$@"
This is a drop-in replacement for xcodebuild, where
xcodebuild arg1 ... argn
would become
path/to/xcbuild-safe.sh arg1 ... argn
I've gisted a production-ready version. Make sure you chmod +x
on that file.