2017-07-17 12 views
9

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

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

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

+0

あなたが実行している具体的なxcodebuildコマンドは何ですか? –

答えて

10

私は、このコマンドを実行していた。

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はデフォルトでビットコードからアプリケーションを再コンパイルします。今、私は最終的にエラーなしxcodebuildとXcodeの9およびエクスポートIPAファイルと私のアプリを構築することができるよ

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

:私は私のoptions.plistに別のエントリを追加することにより、ビットコードをオフにすることによって、このエラーを乗り越えました。

+0

私たちはこれを試しました(UUIDと名前が同じだと思います)。同じエラーが発生しています。 xcodebuildは*どこを見ているのか、*どのプロファイルを試しているのか、なぜそれらが適切でないのかを伝えることは非常に役に立ちます。 –

+0

"NonZeroExcitException"の実際の原因は何ですか?ビットコードをオフにすることはできません – Tres

+0

NonZeroExcitExceptionに関するいくつかの有益な情報:アーカイブステップ中にPythonスクリプトのbitcode-build-toolから来ています。 Xcodeは一時フォルダにログを作成します。私にとっては、次のとおりです。/var/folders/62/wwfl967573n9f1g2yqg_3zg80000j_/T/MyApp_2017-09-18_10-32-23.314.xcdistributionlogsこれらのログには、スクリプトのより詳細な出力が含まれています。エクスポート手順でビットコードに問題があるようです。 – Tres

8

私の場合は問題が-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

+0

ありがとうございました!私のために働いた。 compileBitCodeは署名発行の一部ではなく、必要でない可能性があります。解決策としてマークする必要があります... – moritz

関連する問題