Xcode 8.3 xcodebuild exportArchive no funciona Error "No se encontraron dispositivos aplicables"

Estoy intentando crear el file ipa así:

xcodebuild -exportArchive -archivePath /tmp/public_1.46.0.2029_production.xcarchive -exportPath /tmp/avner -exportOptionsPlist export.plist 

El file export.plist es mínimo (también he intentado eliminarlo completamente y agregar / quitar varias banderas)

Obtengo el siguiente resultado

 ~/Developer/iOS-Scripts/Maxi : xcodebuild -exportArchive -archivePath /tmp/public_1.46.0.2029_production.xcarchive -exportPath /tmp//avner_avner -exportOptionsPlist export.plist 2017-04-03 15:48:37.428 xcodebuild[5086:564094] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/rg/8ydk5h297ng50z_3dpkr5jx00000gn/T/InsertViewer_2017-04-03_15-48-37.428.xcdistributionlogs'. 1.2.840.113635.100.1.61 2017-04-03 15:48:46.363 xcodebuild[5086:564094] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fdc03a02110>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} ** EXPORT FAILED ** 

EDITAR

He intentado llamar a la compilation utilizando el contenedor de scripts de Fastlane, pero sigue recibiendo el mismo error:

 ./xcbuild-safe.sh -exportArchive -archivePath /tmp/public_1.46.0.2029_production.xcarchive -exportPath /tmp//avner_avner -exportOptionsPlist export.plist + xcodebuild -exportArchive -archivePath /tmp/public_1.46.0.2029_production.xcarchive -exportPath /tmp//avner_avner -exportOptionsPlist export.plist 2017-04-04 10:25:22.726 xcodebuild[16384:848977] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/rg/8ydk5h297ng50z_3dpkr5jx00000gn/T/InsertViewer_2017-04-04_10-25-22.726.xcdistributionlogs'. 1.2.840.113635.100.1.61 2017-04-04 10:25:32.156 xcodebuild[16384:848977] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fdde059ff50>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} ** EXPORT FAILED ** ~/Developer/iOS-Scripts/Maxi : cat xcbuild-safe.sh #!/bin/bash --login # shellcheck disable=SC2155 # shellcheck disable=SC1090 # Originally from, https://stackoverflow.com/questions/33041109 # Modified to work in RVM and non RVM environments # # Xcode 7 (incl. 7.0.1) seems to have a dependency on the system ruby. # xcodebuild has issues by using rvm to map to another non-system # ruby. This script is a fix that allows you call xcodebuild in a # "safe" rvm environment, but will not (AFAIK) affect the "external" # rvm setting. # # The script is a drop in replacement for your xcodebuild call. # # xcodebuild arg1 ... argn # # would become # # path/to/xcbuild-safe.sh arg1 ... argn # # More information available here: https://github.com/fastlane/fastlane/issues/6495 # ----- which rvm > /dev/null # shellcheck disable=SC2181 if [[ $? -eq 0 ]]; then echo "RVM detected, forcing to use system ruby" # This allows you to use rvm in a script. Otherwise you get a BS # error along the lines of "cannot use rvm as function". Jeez. [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Cause rvm to use system ruby. AFAIK, this is effective only for # the scope of this script. rvm use system fi if which rbenv > /dev/null; then echo "rbenv detected, removing env variables" # Cause rbenv to use system ruby. Lasts only for the scope of this # session which will normally just be this script. rbenv shell system fi # Since Xcode has a dependency to 2 external gems: sqlite and CFPropertyList # More information https://github.com/fastlane/fastlane/issues/6495 # We have to unset those variables for rbenv, rvm and when the user uses bundler unset RUBYLIB unset RUBYOPT unset BUNDLE_BIN_PATH unset _ORIGINAL_GEM_PATH unset BUNDLE_GEMFILE # Even if we do not use rbenv in some environments such as CircleCI, # We also need to unset GEM_HOME and GEM_PATH explicitly. # More information https://github.com/fastlane/fastlane/issues/6277 unset GEM_HOME unset GEM_PATH set -x # echoes commands xcodebuild "$@" # calls xcodebuild with all the arguments passed to this ~/Developer/iOS-Scripts/Maxi : 

Y el plist (en su encarnación actual)

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>method</key> <string>ad-hoc</string> </dict> </plist> 

Podría usar el siguiente contenedor de fastlane para evitar los problemas de Ruby en su compilation

https://github.com/fastlane/fastlane/blob/master/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh

Reemplazar:

 xcodebuild -exportArchive -archivePath ${ARCHIVE} -exportPath ${OUTPUT_DIR} -exportOptionsPlist exportOptions.plist 

Por:

 sh xcbuild-safe.sh -exportArchive -archivePath ${ARCHIVE} -exportPath ${OUTPUT_DIR} -exportOptionsPlist exportOptions.plist 

Funcionó para mí!

Revisé IDEDistribution.standard.log y encontré una cadena sospechosa:

 Stderr: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: Mach-O universal file: /var/folders/3p/k32287w14n539kf36w55hldw0000gn/T/IDEDistributionThinningStep.C66/Payload/myApp.app/DeviceStatus for architecture armv7 is not a Mach-O file or an archive file. 

Sth raro se incluyó en la aplicación bajo Target> Build Phases> Copy Bundle Resources. Podrían ser packages innecesarios de SDK también. Suprimir la reference para este file ayudó.