IOS 10でXcode 8にアップグレードした後、まさにこのエラーが発生します。私は最新のEl Capitanを使用しており、次のバージョンのRuby(システムバージョンである2.0.0と同じrvmを介して更新しました)と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)
Xcodebuild -exportArchiveコマンドがシェルスクリプトで実行され、アーカイブが成功した後、次のエラーが発生します。
** 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 **
Xcdistributionlogsを調べると、IDEDistribution.standard.logの最後に次の行が含まれています。
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)
それが価値があるかどうかはわかりませんが、これがipatoolへのパスです。
2016-09-22 08:02:17 +0000 [MT] Running /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
どんな助けでも大歓迎です。私はすでにグーグルで見つかった多くの提案を試しましたが、まだ解決策が見つかりませんでした。
同じ問題が発生していました。検索後:
https://forums.developer.Apple.com/thread/13446
Xcode 7の同様の問題については他の場所でも。これはユニークだと気づきました。 Xcode 8でipatoolスクリプトを微調整すれば修正できます。
Sudo vi /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
そして、この1行をコメント化します。
# Check the artwork idiom.
#return nil,"the device doesn't support the app's UIDeviceFamily" unless (deviceTraits.supportedIdioms & bundle.supportedIdioms).size > 0
Ipatoolコマンドをsleuthing経由で見つけました:
/var/folders/.../IDEDistribution.standard.log
次の方法でこれらを検索できます。
$ Sudo find /private/var -name "*.xcdistributionlogs"
関連する詳細/デバッグ手順: https://github.com/fastlane/fastlane/issues/8737
実行後、同じ問題"No applicable devices found"
が発生しました
xcodebuild -exportArchive -archivePath ../bin/archive/GetSocialTestApp.xcarchive -exportPath ../bin/ -exportOptionsPlist ../../scripts/exportOptions.plist
実用的なソリューション:xcodebuild
をxcbuild-safe.sh
で fastlane repo でラップします。詳細なソリューションの説明 ここ 。
表示されているように、問題はrvm
環境変数によって引き起こされ、xcbuild-safe.sh
はxcodebuild
を実行する前にそれらをクリーンアップします。
機能しない解決策:
ipatool
スクリプトを変更します ここCFPropertyList
、sqlite3
that ipatool
が不満を言っていたサードパーティのフレームワークを含めると、エンタープライズプロジェクトでError Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found."
を取得していました。私のexportOptionsPlist
ファイルにはcompileBitcode=NO
エントリが含まれていましたが、プロジェクト自体はまだビットコードがオンになっています。
また、/var/folders/.../IDEDistribution.standard.log
のログを使用したところ、解決策につながる明確なエラーが見つかりました。
詳細: https://developer.Apple.com/library/content/technotes/tn2432/_index.html
以下をコピーして、〜/ .bashrc(ZSHを使用している場合は〜/ .zshrc)の最後に追加します。 そして端末を終了して再起動します(必須)。
unset RUBYLIB
unset RUBYOPT
unset BUNDLE_BIN_PATH
unset _ORIGINAL_GEM_PATH
unset BUNDLE_GEMFILE
unset GEM_HOME
unset GEM_PATH
ご参考までに:
Xcodeは2つの外部Gemに依存しているため:sqliteとCFPropertyList詳細情報 https://github.com/fastlane/fastlane/issues/6495
Rbenv、rvm、およびユーザーがbundlerを使用する場合、これらの変数を設定解除する必要があります。CircleCIなどの一部の環境でrbenvを使用しない場合でも、GEM_HOMEおよびGEM_PATHを明示的に設定解除する必要があります。詳細情報 https://github.com/fastlane/fastlane/issues/627
それでおしまい!をセットする bitcode = no
、エラーが修正されました。
@Tom Haradaの回答でうまくいきましたが、デフォルトのipatool
が機能しなくなった原因を見つけたかったのです。
それは、plistフレームワークのエントリが欠落していたGoogle Cast 3.2 SDKでした。 3.3に更新すると、エクスポートの問題が解決しました。
参照: https://code.google.com/p/google-cast-sdk/issues/detail?id=954https://github.com/fastlane/fastlane/ issues/6223#issuecomment-26734385
最初に、gemでsqlite3とCFPropertyListをMacにインストールしたかどうかを確認する必要があります。次のコマンドを使用して、端末で結果を確認します。
gem list | grep sqlite3
gem list | grep CFPropertyList
何も印刷しない場合は、Sudoを使用してインストールする必要があります
Sudo gem install sqlite3
Sudo gem install CFPropertyList
XCode 8.2.1で同じ問題が発生した
私の場合、問題は、次のエクスポート情報plistを使用して、アドホックまたはアプリストア配布用のアーカイブをエクスポートするときに再現されました
<?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>
リンクされたフレームワークの1つがビットコードを使用してコンパイルされていることがわかりました。これは、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)
YandexMapKit
プロジェクトを手動でiphoneos
-およびiphonesimulator
-フレームワークに再コンパイルして、それらをユニバーサルフレームワークにマージする必要がありました。