web-dev-qa-db-ja.com

exportOptions.plistの形式が新しいリリースで変更されたため、Xcode 9配布ビルドは失敗します

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でのみ失敗します。誰かが問題を特定するのを手伝ってもらえますか?

22
tutiplain

手動のコード署名(エラーメッセージの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機能を使用して、エディターを起動せずにプロビジョニングプロファイルの値を表示することです。

30
ablarg

使用コマンド/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>
9
Victor Choy