Après la mise à niveau vers Xcode 8 avec iOS 10, je reçois exactement cette erreur. Je suis sur le dernier El Capitan et j'utilise les versions suivantes de Ruby (j'ai mis à jour via rvm, idem 2.0.0 qui est la version système) et CFPropertyList:
Philipps-MacBook-Pro:mobile-sdk prakuschan$ Ruby -v
Ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
Philipps-MacBook-Pro:mobile-sdk prakuschan$ gem list CF
*** LOCAL GEMS ***
CFPropertyList (2.3.3)
La commande xcodebuild -exportArchive est exécutée dans un script Shell et, après un archivage réussi, le message d'erreur suivant s'affiche:
** ARCHIVE SUCCEEDED **
2016-09-22 10:02:16.460 xcodebuild[10375:8369748] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/9y/r64c9wld0jx2yf3glsrzhhr00000gn/T/AppName_2016-09-22_10-02-16.456.xcdistributionlogs'.
2016-09-22 10:02:18.228 xcodebuild[10375:8369748] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fe435f9dfb0>: 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 **
Lorsque vous examinez les journaux xcdistribution, IDEDistribution.standard.log contient les lignes suivantes à la fin:
2016-09-22 08:02:18 +0000 [MT] /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with a signal 6
2016-09-22 08:02:18 +0000 [MT] ipatool JSON: (null)
Je ne sais pas si c'est utile, mais c'est le chemin vers ipatool:
2016-09-22 08:02:17 +0000 [MT] Running /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
Toute aide est grandement appréciée. J'ai déjà essayé de nombreuses suggestions trouvées sur Google, mais je n'ai pas encore trouvé de solution.
Je voyais le même problème. Après avoir cherché dans:
https://forums.developer.Apple.com/thread/13446
Et ailleurs pour Xcode 7 des problèmes similaires. J'ai réalisé que celui-ci est unique. Vous pouvez résoudre ce problème si vous peaufinez le script ipatool dans Xcode 8.
Sudo vi /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
Et commentez cette ligne:
# Check the artwork idiom.
#return nil,"the device doesn't support the app's UIDeviceFamily" unless (deviceTraits.supportedIdioms & bundle.supportedIdioms).size > 0
Trouvé via sleuthing la commande ipatool dans:
/var/folders/.../IDEDistribution.standard.log
Vous pouvez les rechercher via:
$ Sudo find /private/var -name "*.xcdistributionlogs"
Étapes pertinentes pour le débogage: https://github.com/fastlane/fastlane/issues/8737
Nous avons eu le même problème "No applicable devices found"
après avoir exécuté
xcodebuild -exportArchive -archivePath ../bin/archive/GetSocialTestApp.xcarchive -exportPath ../bin/ -exportOptionsPlist ../../scripts/exportOptions.plist
Solution de travail: encapsulez xcodebuild
avec xcbuild-safe.sh
à partir de fastlane repo . Solution détaillée décrite ici .
Comme il est apparu, le problème était dû aux variables d'environnement rvm
. xcbuild-safe.sh
les nettoie avant l'exécution de xcodebuild
.
Ne fonctionne pas solutions que nous avons essayées:
ipatool
comme décrit iciCFPropertyList
, sqlite3
dont ipatool
se plaignait J'obtenais le Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found."
avec mon projet d'entreprise en incluant un framework tiers. Mon fichier exportOptionsPlist
contenait l'entrée compileBitcode=NO
mais le projet lui-même avait toujours le bitcode activé.
J'ai aussi utilisé le journal sur /var/folders/.../IDEDistribution.standard.log
et j'ai trouvé une erreur plus claire qui m'a conduit à la solution.
Plus d'infos: https://developer.Apple.com/library/content/technotes/tn2432/_index.html
Copiez ce qui suit et ajoutez-le à la fin de votre ~/.bashrc (~/.zshrc si vous utilisez ZSH). et quittez le terminal et redémarrez-le (doit).
unset RUBYLIB
unset RUBYOPT
unset BUNDLE_BIN_PATH
unset _ORIGINAL_GEM_PATH
unset BUNDLE_GEMFILE
unset GEM_HOME
unset GEM_PATH
FYI:
Puisque Xcode a une dépendance à 2 gemmes externes: sqlite et CFPropertyList Plus d'informations https://github.com/fastlane/fastlane/issues/6495
Nous devons désélectionner ces variables pour rbenv, rvm et lorsque l'utilisateur utilise bundler Même si nous n'utilisons pas rbenv dans certains environnements tels que CircleCI, Nous devons également désélectionner explicitement GEM_HOME et GEM_PATH . informations https://github.com/fastlane/fastlane/issues/627
C'est tout! Définissez le bitcode = no
, l'erreur a été corrigée. ????
Les réponses de @Tom Harada ont fonctionné pour moi, mais je voulais trouver ce qui causait la rupture de la variable ipatool
par défaut.
C’était le SDK de Google Cast 3.2, auquel il manquait une entrée dans le framework Plist. La mise à jour à la version 3.3 a résolu le problème d'exportation.
Références: https://code.google.com/p/google-cast-sdk/issues/detail?id=954https://github.com/fastlane/fastlane/issues/6223 # issuecomment-267343853
Au début, vous devez vérifier que, si vous avez installé sqlite3 et CFPropertyList avec gem sur votre mac . Utilisez ces commandes pour examiner le résultat dans votre terminal:
gem list | grep sqlite3
gem list | grep CFPropertyList
si vous n'imprimez rien, vous devez les installer avec Sudo
Sudo gem install sqlite3
Sudo gem install CFPropertyList
Avait un même problème avec XCode 8.2.1
Dans mon cas, le problème consistait à exporter une archive pour une distribution ad hoc ou appstore avec le plist info export suivant
<?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>teamID</key>
<string>TEAMID</string>
<key>method</key>
<string>ad-hoc</string> # or `app-store`
<key>uploadSymbols</key>
<true/>
<key>compileBitcode</key>
<false/>
<key>uploadBitcode</key>
<false/>
</dict>
</plist>
Il s'est avéré que l'un des frameworks liés a été compilé à l'aide de bitcode. Cela a été signalé à partir du journal d’exportation xcode: IDEDistribution.stadard.log
:
error: Failed to verify bitcode in YandexMapKit.framework/YandexMapKit:
error: Bundle only contains bitcode-marker /var/folders/zb/ftpjx10s547ddmzm_ybqdm51xdv_t7/T/IDEDistributionThinningStep.NKQ/Payload/Avito.app/Frameworks/YandexMapKit.framework/YandexMapKit (armv7)
Je devais recompiler manuellement le projet YandexMapKit
en iphoneos
- et iphonesimulator
- et les fusionner en un cadre universel