SDKバージョン6.1.2およびXcode 9ベータ版を使用して、アプリのアドホックIPAをコンパイルしようとしています(アプリが新しいバージョンで動作するかどうかを確認しようとしています)。私のビルドは次のエラーメッセージで失敗します。
Error Domain=IDEProvisioningErrorDomain Code=9 ""DGHospice.app"
requires a provisioning profile." UserInfo=
{NSLocalizedDescription="DGHospice.app" requires a provisioning
profile., NSLocalizedRecoverySuggestion=Add a profile to the
"provisioningProfiles" dictionary in your Export Options property
list.}
配布プロファイルは有効であり、iOS SDK 10を使用する場合、IPAを作成できます。ビルドは11.0でのみ失敗します。誰かが問題を特定するのを手伝ってもらえますか?
手動のコード署名(エラーメッセージのExport Options property list
で推定)を使用しているようです。おそらく、Appleで推奨されているように、必要に応じて自動コード署名に切り替える必要があります。
問題は、exportOptions.plist形式がXcode 9
と互換性がないことです。 Xcode 9
の必要最小限の配布plistは、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>provisioningProfiles</key>
<dict>
<key>MY_APP_BUNDLE_ID</key>
<string>MY_PROFILE_NAME_AS_SHOWN_BY_XCODE or UUID_FOUND_IN_MOBILEPROVISION_FILE</string>
</dict>
<key>signingCertificate</key>
<string>iOS Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>MY_TEAM_ID</string>
</dict>
</plist>
exportOptions.plist
を実行すると、xcodebuild -help
でサポートされているオプションのリストを表示できます。
このようなものがXcode 9
でどのように機能するかについての有用な概要を、次のビデオで見ることができます。 https://developer.Apple.com/videos/play/wwdc2017/403/
Xcodeの検索フィールドで「手動署名」を検索してヘルプを表示することもできます。
BitRiseのAnnaBátkiがここで文書化したプロセスに従って、ダミーexportOptions.plist
ファイルを作成できます。 http://blog.bitrise.io/2017/08/15/new-export-options-plist -in-Xcode-9.html
Xcode 9 beta 5
を使用してAnnaの手順に従う場合、exportOptionsPlist
はエクスポートされないことに注意してください。この動作はXcode 9 GM
で再び機能します。
exportOptionsPlist
ファイル内のプロビジョニングプロファイルの値を決定するには、使用する.mobileprovisionファイルの内容を表示し、キーをアプリケーションのバンドルID( 'com.foo')に設定します。 .mobileprovisionファイルのUUIDの値。
ls ~/Library/MobileDevice/Provisioning\ Profiles/
を見ると、ビルドが使用するプロビジョニングプロファイルを確認できます。
もう1つの便利なツールは、FinderのQuickLooks機能を使用して、エディターを起動せずにプロビジョニングプロファイルの値を表示することです。
使用コマンド/Applications/Xcode-beta.app/xcodebuild -help
。 exportOptionsPlistに関する詳細情報が表示されます。-exportOptionsPlistで使用可能なキーは次のとおりです。
....
provisioningProfiles:辞書
手動署名のみ。アプリの各実行可能ファイルに使用するプロビジョニングプロファイルを指定します。この辞書のキーは、実行可能ファイルのバンドル識別子です。値は、使用するプロビジョニングプロファイル名またはUUIDです。
....
以下は、オプション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>provisioningProfiles</key>
<dict>
<key>com.aaa.bbb</key>
<string>adhoc_bbb</string>
<key>com.aaa.ccc</key>
<string>adhoc_ccc</string>
</dict>
<key>method</key>
<string>ad-hoc</string>
<key>uploadBitcode</key>
<false/>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>