iOS アプリケーションを iTunes Connect にプッシュしようとしていますが、Xcode で検証しようとすると次のエラーが発生します。
Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate
同じ問題に関連する多くの質問を見てきましたが、それらはうまくいきませんでした。Apple のTechnical Note TN2250のすべてのステップに従います。ビルド設定で、配布プロファイルがリリース用に選択されていることを確認し (ワイルドカードとアプリのカスタム プロファイルを試しました)、スキーマが正しいものであることを確認します。アプリがそのプロファイルで署名されていることを確認するために、codesign -d -vvvv MyApp.app
コマンドを使用して次のような結果を取得します。
Executable=/Users/myuser/Library/Developer/Xcode/Archives/2012-09-17/myapp 17-09-12 09.27.xcarchive/Products/Applications/MyApp.app/MyApp
Identifier=com.example.MyApp
...
Authority=iPhone Distribution: My Company
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
...
変更していない権利を で確認するとsecurity cms -D -i MyApp.app/embedded.mobileprovision
、次のようになります。
<?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>ApplicationIdentifierPrefix</key>
<array>
<string>PR3F1X</string>
</array>
<key>CreationDate</key>
<date>2012-09-17T07:20:35Z</date>
<key>DeveloperCertificates</key>
<array>
<data>
...
</data>
</array>
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>PR3F1X.com.example.MyApp</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PR3F1X.*</string>
</array>
</dict>
<key>ExpirationDate</key>
<date>2013-09-16T07:20:35Z</date>
<key>Name</key>
<string>PROFILE NAME</string>
<key>TeamIdentifier</key>
<array>
<string>PR3F1X</string>
</array>
<key>TimeToLive</key>
<integer>364</integer>
<key>UUID</key>
<string>...</string>
<key>Version</key>
<integer>1</integer>
</dict>
</plist>
このアプリのバンドル ID は com.example.MyApp のように見え、大文字が問題になるのではないかと思いましたが、変更したところ問題はありませんでした。その後、証明書を取り消し、新しい mobileprovision プロファイルを取得し、プロセス全体を再度実行しましたが、成功しませんでした。
私が使用しているソフトウェアは、Mac OS X 10.7.4 を搭載した Xcode 4.3.2 です。
問題がどこにあるのかわかりません。何かが欠けています。
編集 1: バンドル ID を変更するには、他の設定を手動で変更する必要がありますか?
EDIT 2:サンプルアプリを最初から作成し、同じ証明書で署名したところ、すべてがスムーズに進んだため、問題は構成にあるようです。これら 2 つのプロジェクトの設定の違いを確認しようとしていますが、注目に値するのは、最初の設定が iPad のみで、いくつかの PhoneGap プラグインを使用していることだけです。