署名のトラブルシューティング
コード署名エラーが起こったら
ヒント:自動署名 を使用する場合 (推奨)、Xcode はほとんどのコード署名エラーを修復します。
アプリに手動で署名 する場合、プロビジョニングプロファイルを管理する責任があなたにはあり、アプリをビルドして実行する とコード署名エラーが発生することがあります。
プロビジョニングプロファイルを変更し、以下のエラーメッセージを受け取った場合:
Code Sign error: Provisioning Profile 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' can’t be found
the provisioning profile is wrong.
(コード署名エラー:プロビジョニングプロファイル'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' が見つかりません
プロビジョニングプロファイルが間違っています。)
- (プロジェクトエディタ の [全般(General)] ペインにある)[署名(Signing)] セクションで、チーム、プロビジョニングプロファイル、および署名証明書の設定が正しいことを確認します。
- アプリに手動で署名 する場合は、手順を繰り返して、プロビジョニングプロファイルを ダウンロード して インポート します。
コード署名 ID のビルド設定を自分で設定した場合は、プロジェクトエディタの [ビルド設定(Build Setting)] ペインで設定が正しいことを確認してください。
同じ署名証明書を使用する複数のターゲットの場合、このビルド設定をターゲットではなくプロジェクトレベルで設定します。それがプロジェクトとターゲットの両方に設定されている場合、ターゲット設定はプロジェクト設定をオーバーライドします。ターゲットのコード署名 ID ビルド設定が設定されている場合は、まずそれを選択してから、[編集(Edit)] > [削除(Delete)] を選択して削除します。次に、プロジェクトのコード署名 ID ビルド設定を署名証明書に設定します。
署名証明書またはプロビジョニングプロファイルが [コード署名 ID(Code Signing Identity)] ポップアップメニューに表示されない場合は、プロビジョニングプロファイルを再度 ダウンロード して インポート します。
ビルド設定を表示および編集するには、ビルド設定の構成 をご覧下さい。
Xcode が開発または配布証明書の信頼性を検証できない場合、codesign(1) コマンドラインツールから CSSMERR_TP_NOT_TRUSTED エラーメッセージを受け取ります。
Code Sign error (コード署名エラー):CSSMERR_TP_NOT_TRUSTED
この問題を修正するには、開発、配布、および中間証明書の信頼設定をシステムのデフォルトに設定します。
- キーチェーンアクセスを起動します。
- [カテゴリ(Category)] セクションで、[私の証明書(My Certificate)] を選択します。
- 証明書をダブルクリックします。
- 証明書ウィンドウで、対応する開閉用三角ボタンをクリックして、[信頼(Trust)] セクションを表示します。
- [この証明書を使用する場合] オプションで、[システムデフォルトを使用] を選択します。
- 証明書ウィンドウを閉じます。
- 証明書情報が証明書が有効であることを示していることを確認してください。
証明書名 を使用して、チームに属する証明書を検索します。たとえば、Apple 配布証明書は "Apple Distribution" で始まります。
証明書の有効期限が切れているか無効な場合、以下のエラーメッセージを受け取ります。
Code Signing Identity 'iPhone Developer' doesn't match any valid, non-expired, certificate/private key pair in your keychain.
(コード署名 ID 'iPhone Developer' は、キーチェーン内の有効な、有効期限が切れていない、証明書/秘密キーのどのペアとも一致しません。)
- アカウント環境設定で、署名証明書をリセットします。
- アプリに手動で署名する 場合は、新しい署名証明書を含むプロビジョニングプロファイルを ダウンロード して インポート します。
重複した署名証明書がキーチェーンにある場合 - 2 つの開発証明書または 2 つの配布証明書など (キーチェーンには各型のコード署名証明書が最大で 1 つ含まれていなければなりません)、以下のいずれかのエラーメッセージを受け取るでしょう。
Build error "iPhone Developer: <your_name> (XYZ123ABC): ambiguous (matches "iPhone Developer: <your_name> (XYZ123ABC)" in /Library/Keychains/System.keychain and "iPhone Developer: <your_name> (XYZ123ABC)" in /Users/../Library/Keychains/login.keychain)"
[BEROR]CodeSign error: Certificate identity 'iPhone Distribution: <your_name>' appears more than once in the keychain. The codesign tool requires there only be one.
プロビジョニングプロファイルのアプリ ID とプロジェクトの バンドル ID の間に矛盾がある場合、以下のようなエラーメッセージを受け取ります。
Code Sign error: Provisioning profile 'MyApp Profile' specifies the Application Identifier 'com.mycompany.MyApp.*' which doesn't match the current setting 'com.mycompany.MyApp'
- プロジェクトエディタ で、ターゲットを選択し、[全般(General)] をクリックします。
- [ID(Identity)] セクションで、バンドル ID を設定 してアプリ ID と一致するようにします。
- [署名(Signing)] セクションで、チーム、プロビジョニングプロファイル、署名証明書の設定が正しいことを確認します。
- プロビジョニングプロファイルの隣にある情報アイコンをクリックします。
- 表示されるダイアログで、プロビジョニングプロファイルに正しいアプリ ID が含まれていることを確認します。
さらに、デベロッパアカウント でアプリ ID とプロビジョニングプロファイルの詳細を表示できます。
以下も見よ