web-dev-qa-db-ja.com

xcodebuild exportArchive:該当するデバイスが見つかりません

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

どんな助けでも大歓迎です。私はすでにグーグルで見つかった多くの提案を試しましたが、まだ解決策が見つかりませんでした。

16
Philipp

同じ問題が発生していました。検索後:

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

10
user560766

実行後、同じ問題"No applicable devices found"が発生しました

xcodebuild -exportArchive -archivePath ../bin/archive/GetSocialTestApp.xcarchive -exportPath ../bin/ -exportOptionsPlist ../../scripts/exportOptions.plist

実用的なソリューションxcodebuildxcbuild-safe.shfastlane repo でラップします。詳細なソリューションの説明 ここ

表示されているように、問題はrvm環境変数によって引き起こされ、xcbuild-safe.shxcodebuildを実行する前にそれらをクリーンアップします。

機能しない解決策:

  • 説明されているようにipatoolスクリプトを変更します ここ
  • Ruby 2.0.0にダウングレード
  • インストールRuby gems CFPropertyListsqlite3 that ipatoolが不満を言っていた
5
zasadnyy

サードパーティのフレームワークを含めると、エンタープライズプロジェクトで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

2
Nick

以下をコピーして、〜/ .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

2
Kun Wang

それでおしまい!をセットする bitcode = no、エラーが修正されました。

1
knight2016

@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

0
Nicolas Braun

最初に、gemでsqlite3とCFPropertyListをMacにインストールしたかどうかを確認する必要があります。次のコマンドを使用して、端末で結果を確認します。

  • gem list | grep sqlite3
  • gem list | grep CFPropertyList

何も印刷しない場合は、Sudoを使用してインストールする必要があります

  • Sudo gem install sqlite3
  • Sudo gem install CFPropertyList
0
Bevis Liu

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-フレームワークに再コンパイルして、それらをユニバーサルフレームワークにマージする必要がありました。

0
Tim

ビルドスクリプトにも同じ問題があり、追加したフレームワークを確認します。 plistファイルを含むフレームワークがあります(名前はInfo.plistと同じです)。そこで、Info.plistファイルを削除します。ビルドスクリプトは正常に機能します。

enter image description here

0
riven