Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xcodebuild: "No applicable devices found." when exporting archive

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.

like image 895
Clay Bridges Avatar asked Oct 09 '15 14:10

Clay Bridges


1 Answers

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.

like image 158
Clay Bridges Avatar answered Sep 25 '22 04:09

Clay Bridges