web-dev-qa-db-ja.com

xcodebuild -exportArchiveがエラーで失敗し、署名アセットの検索に失敗しました

コマンドラインのxcodebuildツールを使用して、Xcodeアーカイブから.ipaファイルをエクスポートしています。 Xcode 8.3.3までは正常に動作していました。同じセットアップは、Xcode 9ベータ版では動作しなくなりました。今、このエラーで失敗します:

IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fc309310550>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed."

Xcode 9はプロビジョニングプロファイルを見つけることができないようですが、なぜですか?

13

私の場合、問題は-exportOptionsPlist plistの次のフィールドによって解決されました。

<dict>
  <key>compileBitcode</key>
  <false/>

  <key>method</key>
  <string>ad-hoc</string>

  <key>provisioningProfiles</key>
  <dict>
      <key>com.my.bundle.id</key>
      <string>AD_HOC_PROVISIONING_PROFILE_NAME</string>
  </dict>

  <key>signingCertificate</key>
  <string>CERTIFICATE_HASH</string>

  <key>signingStyle</key>
  <string>manual</string>

  <key>teamID</key>
  <string>TEAM_ID</string> 
</dict>

そのため、どうやらcompileBitcodemethodprovisioningProfilessigningCertificatesigningStyleteamIDを設定する必要がありました。

あなたの場合、フィールドのセットは異なる場合があります。 Xcode 9を介して.ipaをアーカイブおよびエクスポートすることでセットを見つけました。XCodeはexportOptionsPlistをipaでエクスポートし、使用したフィールドを表示します。

フィールド検出の詳細: https://blog.bitrise.io/new-export-options-plist-in-xcode-9

11
Anton Ogarkov

私はこのコマンドを実行していました:

xcodebuild -exportArchive -archivePath archive.xcarchive -exportPath /my/export/path -exportOptionsPlist options.plist

私のプロジェクトは手動署名を使用しています。 Xcode 9では、エクスポートされた.ipaファイルに署名するために、options.plistで指定されたプロビジョニングプロファイル名またはUUIDが必要であることがわかりました。私はこのエントリをoptions.plistに追加しました:

<key>provisioningProfiles</key>
<dict>
    <key>com.myapp.bundle.id</key>
    <string>My AdHoc Provisioning Profile Name</string>
</dict>

また、「署名アセットの検索に失敗しました」というエラーはなくなりました。ただし、別のエラーがありました。

IDEDistribution: Step failed: <IDEDistributionPackagingStep: 0x7f9dfd8e5930>: Error Domain=IDEFoundationErrorDomain Code=1 "ipatool failed with an exception: #<CmdSpec::NonZeroExcitException: CmdSpec::NonZeroExcitException>

Xcode 9は、デフォルトでビットコードからアプリを再コンパイルします。 options.plistに別のエントリを追加してビットコードをオフにすることで、このエラーを乗り越えました。

<key>compileBitcode</key>
<false/>

これで、ようやくXcode 9でアプリをビルドし、xcodebuildでipaファイルをエラーなしでエクスポートできるようになりました。

11