2017-09-21 10 views
23

昨日、xcode 8.3.2からバージョン9にアップグレードしました。xcode 9にアップグレードした後、cordovaアプリケーションがビルドされない、エラー70、プロビジョニングプロファイルが必要

2017-09-21 07:37:16.787 xcodebuild[70400:217569] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/wj/yj3cfvh954gbc_btlhcrcx7nk7t4dj/T/App Name_2017-09-21_07-37-16.786.xcdistributionlogs'. 
2017-09-21 07:37:16.938 xcodebuild[70400:217569] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7ff756bbdf70>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
    "Error Domain=IDEProvisioningErrorDomain Code=9 \"\"App Name.app\" requires a provisioning profile.\" UserInfo={NSLocalizedDescription=\"App Name.app\" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}" 
)} 
error: exportArchive: "App Name.app" requires a provisioning profile. 

Error Domain=IDEProvisioningErrorDomain Code=9 ""App Name.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="App Name.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.} 

** EXPORT FAILED ** 

Error: Error code 70 for command: xcodebuild with args: -exportArchive,-archivePath,App Name.xcarchive,-exportOptionsPlist,/Users/Shared/Workspace/github/AppName/platforms/ios/exportOptions.plist,-exportPath,/Users/Shared/Workspace/github/AppName/platforms/ios/build/device 

(私はこの質問に対して、「アプリケーション名」でアプリ名を置き換え)

私はすべての証明書とプロビジョニングプロファイルがXcodeで設定されていることを確認しました。そして、build.jsonが設定されます。私は本当にMacの男ではないと私は次に何をすべきか分かりません。

-eddit、xcodeを8.3.3にダウングレードすると問題が解決しました。理想的な解決策ではありませんが、あまりできません。

+1

私はいつも手動で署名します。これまでのところ、私はこのように困ってしまうことはありません。 – Hoon

+0

どうしたのですか? –

+0

何もない。プラットフォームを追加した直後に、ビルドする前にxcodeを開いて「署名を自動的に管理する」のチェックボックスを有効にします。その後、問題がなければ、ビルドアイオスを進めてください。 – Hoon

答えて

45

私のようなプロビジョニングプロファイルを明示的に指定する場合。あなたのコルドバのbuild.jsonで、次のように:

"ios": { 
    "debug": { 
     "codeSignIdentitiy": "iPhone Developer", 
     "developmentTeam":"MYTEAMID", 
     "packageType": "developer", 
     "iCloudContainerEnvironment": "Development" 
    }, 
    "release": { 
     "codeSignIdentitiy": "iPhone Distribution", 
     "developmentTeam":"MYTEAMID", 
     "provisioningProfile": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", 
     "packageType": "ad-hoc", 
     "iCloudContainerEnvironment": "Production" 
    } 
} 

iCloudContainerEnvironment =制作/開発を注意してくださいは、あなただけはプッシュ通知

を使用する場合は、明示的に手動で署名を設定して、プロビジョニングキーを提供する必要が要求されあなたのExportOptions.plistで、Cordovaによって生成されます。残念ながら、現在Cordovaは必要なキーをすべて生成していません。ここで

が、それは、少なくとも私にとっては、見えるように必要なものです:

<?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>compileBitcode</key> 
    <false/> 
    <key>method</key> 
    <string>ad-hoc</string> 
    <key>iCloudContainerEnvironment</key > 
    <string>Production</string> 
    <key>provisioningProfiles</key> 
    <dict> 
    <key>my.bundle.idenifier</key> 
    <string>My Provisioning Profile Name</string> 
    </dict> 
    <key>signingCertificate</key> 
    <string>iPhone Distribution</string> 
    <key>signingStyle</key> 
    <string>manual</string> 
    <key>stripSwiftSymbols</key> 
    <true/> 
    <key>teamID</key> 
    <string>YOURTEAMID</string> 
    <key>thinning</key> 
    <string>&lt;none&gt;</string> 
</dict> 
</plist> 

ファイルコルドバに@コルドバ/アプリ/プラットフォームを生成/ IOS/exportOptions.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>compileBitcode</key> 
    <false/> 
    <key>method</key> 
    <string>development</string> 
    <key>teamID</key> 
    <string>MYTEAMID</string> 
    </dict> 
</plist> 

注意Xcode 9が必要とする重要なビットがありません。

ビルドを手動でアーカイブしてから、正しいファイルを生成してエクスポートしました。エクスポートしてexportOptions.plistファイルを作成し、参照として使用します。

深く掘り下げた後、「Cordova add platform iOS」を実行した後に修正できないことがわかりました。これは、ビルドフェーズで動的に生成されるためです。私はCordova-iosレポをフォークし、プルリクエストを提出することに決めました。自分のフォークを直接使用することも、プルリクエストがマージされるまで待つこともできます。

プル要求 https://github.com/apache/cordova-ios/pull/338/commits

フォーク https://github.com/jrryhrtn/cordova-ios

プル要求

から使用上の注意は、以下の例を参照してください、プロビジョニングプロファイルは、名前やUUIDことができることに注意してくださいプロフィールのプロファイルを再生成するたびにUUIDが変更されるため、メンテナンスには名前が優先されます。

{ 
"ios": { 
    "debug": { 
     "codeSignIdentity": "iPhone Developer", 
     "developmentTeam":"YOURTEAMID", 
     "provisioningProfile": "provisioning profile name or UUID", 
     "packageType": "development" 
    }, 
    "release": { 
     "codeSignIdentity": "iPhone Distribution", 
     "developmentTeam":"YOURTEAMID", 
     "provisioningProfile": "provisioning profile name or UUID", 
     "packageType": "ad-hoc" 
    } 
} 
} 

/a修正が次のCordovaリリースにマージされるまで手動で修正する予定です。パッチの後に "Cordova platform rm iOS"、 "Cordova platform add〜/ forks/cordova-ios"でiOSプラットフォームを再生成する必要があります。〜/ forks/cordova-ios自分のローカルパスで、フォークされたCordova-iosレポをダウンロードしたローカルマシンのパスを使用します。

更新

コルドバ-IOS 4.5.2が正式にリリースされました!次のコマンドを実行してアップグレードします。「cordova platform rm ios」、「cordova platform add [email protected]

乾杯!

+0

どうもありがとうございました。 –

+0

フォードは、コルドバがマージを受け入れる前に、人生を保存しました。 – fifth

+0

プッシュ通知でこれが機能することを確認できます。ありがとう! – JedatKinports

3

ここに...助けが来ているとあなたが直接のXcodeを使用する(と私はあなたを判断してはいけない)必要はありませんが、私のためにうまく働いた一時的な解決策である:

は、iOS

を削除します
cordova platform rm ios 

dev brunchからiosを追加します(this issue already fixed)。 (後で、iOS搭載v4.6.0または最終#があることを行っているものは何でも使用することができます)

cordova platform add https://github.com/apache/cordova-ios.git 

私はそれがあまりにもあなたを助けることを願っています!

関連する問題