トラブルシューティング
トラブルシューティングは、開発、テスト、提出、アプリをリリースする際に必要な部分です。あなたが遭遇する可能性のある潜在的な問題は、4つの一般的なエリア、つまり証明書、プロビジョニング、ビルド、およびデバッグとここで整理されており、それぞれの問題には特定のアドバイスが続きます。あなたが遭遇する可能性のある問題の解決策を見つけるための基準として、この章を使用してください。
証明書の問題
無効または使用できなくなった証明書を再作成する前に、以下の一般的ないくつかの問題を持っていないかどうかを検討してください。
コード署名 ID をなくした時
あなたが署名 ID をなくした時に Xcode は検出します。通常、あなたがある Mac から別のものに移動するとき、これが起こります。あなたの署名 ID を作成し、チームプロビジョニングプロファイルに追加するには チーム・プロビジョニング·プロファイルの作成 の手順に従います。別の Mac からあなたの署名 ID をインポートまたはそれをリセットするオプションがあります。自分自身を管理するカスタム開発プロビジョニングプロファイルを使用する場合は、開発用証明書を破棄後には無効となります。それを再生するには、会員センターでプロビジョニングプロファイル編集 をお読みください。
この問題を回避するには、他の Mac 上の開発者プロファイルのファイルとして、あなたの証明書をエクスポートし、証明書とプロファイルのエクスポートとインポート で説明したように、その後、新しい Mac にインポートします。
一致するプロビジョニングプロファイルがない時
開発プロビジョニングプロファイルがない場合、Xcode はそれを検知し、[一般(General)] ペインと[機能(Capabilities)] ペインの両方に警告メッセージを表示します。"一致するプロビジョニング・プロファイルがありません" というメッセージが[一般] ペイン内のチームポップアップメニューの下に表示された場合は、メッセージの下の[問題の修正(Fix Issue)] ボタンをクリックします。"何もデバイスが登録されていません" ダイアログが表示された場合は、[問題の修正] ボタンをクリックする前に、チーム・プロビジョニング·プロファイルの作成 で説明したように、あなたの Mac に適格なデバイスを接続して下さい。Xcode が問題を解決しない場合は、プロジェクトの構成を確認するため ID とチーム設定の構成 のすべての手順に従ってください。
開発者 ID 証明書の秘密鍵がなくなった場合
開発者 ID 証明書を破棄する必要がある場合、必要なら product-security@apple.com で Apple にコンタクトして下さい。他の方法として、開発者 ID 証明書の追加作成 で説明したように、追加の開発者 ID 証明書を作成して、アプリを開発し、配布し続けることができます。
中間証明書がないので証明書が無効
証明書が無効である場合は、証明書の認証に使用される中間証明書をなくした可能性があります。キーチェーンアクセスで証明書を検証する場合、キーチェーンアクセス使用で検証」 で述べたように、チェックマークの付いた緑の円の代わりに、白い X が付いた赤い円が現れ、"この証明書は不明な認証局によって署名された" 状態であると表示され、あなたは中間証明書をなくしています。あなたのシステムキーチェーンに[アップルワールドワイドデベロッパリレーションズの証明権限] と呼ばれる証明書をお持ちでない場合は、それを再インストールするために、なくなった中間証明権限をインストール をお読みください。開発者 ID 証明書の中間証明書は、[開発者 ID の照明権限] と呼ばれています。
証明書は、信頼に問題あり
キーチェーンアクセスで証明書を表示した時に、またチェックマークのある緑の円のの代わりに、青い円に白のプラス記号が詳細領域に表示された場合、証明書は信頼に問題があります。この問題を修正する方法を学習するには、Xcode は、証明書を信頼していない をお読み下さい。
証明書は、有効期限が切れている
期限切れの証明書を更新することはできません。期限切れの証明書を削除し、新しいものを作成する方法については、期限切れの証明書の交換 をお読みください。
Mac の注意:あなたの開発者 ID 証明書の有効期限が切れた場合、ユーザーは依然として、ダウンロードし、インストールし、そしてこれらの証明書で署名された、あなたの Mac アプリのバージョンを実行できます。ただし、更新に署名し、新しいアプリを作成するには新しい開発者 ID 証明書が必要です。
要求がタイムアウトした
ダイアログが現れ、リクエストがタイムアウトしたことを示す場合、会員センターの証明書、ID と プロファイルのセクションは、メンテナンスのために、多分ダウンしています。あとでもう一度試して下さい。
プロビジョニングプロファイルや署名 ID が Xcode のメニューに表示されない
時として、プロビジョニングプロファイルやコード署名がプロビジョニング・プロファイルに表示されず、プロジェクトエディタのコード署名 ID ビルド設定をするときや、デバイスウィンドウを使用してアプリを配布する場合、ポップアップメニューには表示されません。これが発生すると、Xcode でプロビジョニングプロファイルのダウンロード で説明したように、Xcode でプロビジョニングプロファイルをダウンロードしてください。
プロビジョニングの問題
一般的なプロビジョニングの問題は、アプリで間違ったプロビジョニング・プロファイルを使用するか、または無効または期限切れのプロビジョニング・プロファイルを使用することから生じます。
デバイスにインストールされたプロビジョニングプロファイルが無効
開発デバイス上でのプロビジョニング・プロファイルの有効期限が切れているか無効である場合、デバイス上のプロビジョニングプロファイルの確認と削除 で説明したように、それを削除して下さい。
プロビジョニングプロファイルが会員センター内で無効とされる
破棄されたり、期限切れになった証明書を含んでいる場合は、プロビジョニング・プロファイルは無効と表示されます。そのアプリ ID 資格が変更されたり、そのアプリ ID が削除された場合、プロビジョニング・プロファイルは、無効と表示されます。それが無効になったデバイスを含んでいる場合は、開発またはアドホックプロビジョニング・プロファイルは無効です。
チーム・プロビジョニング·プロファイルが会員センター内で無効と表示された場合は、Xcode でプロビジョニングプロファイルのダウンロード で説明したように Xcode でプロビジョニングプロファイルをダウンロードして下さい。例えば、あなたの開発用証明書を破棄する場合、関連するチームのプロビジョニング・プロファイルを再生成するため Xcode を使用して下さい。
あなたが管理するプロビジョニング・プロファイルが会員センターで無効と表示された場合は、会員センターからプロビジョニングプロファイルを削除 と 会員センターでプロビジョニングプロファイル編集 に記載されているように、それを削除するか、編集します。
そのようなプロビジョニングプロファイルは見つからない
"あなたのビルド設定がプロビジョニング・プロファイル[...]で指定するが、そのようなプロビジョニング・プロファイルは。見つからなかった" の警告または同様のメッセージが[一般(General)] ペインでチームポップアップメニューの下に表示された場合、誤ったプロビジョニング・プロファイルを持ち、Xcode の以前のバージョンを使用してコード署名 ID のビルド設定をしているかもしれません。
これが発生したら、警告メッセージの下の[問題を修正(Fix Issue)] ボタンをクリックして下さい。必要に応じて、再度、[問題を修正] ボタンをクリックします。プロビジョニング・プロファイルのビルド設定が、[なし(None)] か、コード署名 ID のビルド設定がiOS、tvOS、および watchOS アプリでの場合、[自動(Automatic)] および iOS 開発者になっており、Mac アプリの場合、[自動] および Mac 開発者でなければなりません。
古いプロジェクトを持っていて、Xcode で管理されたプロビジョニング・プロファイルを使用したい場合は、Xcode 管理のプロビジョニング・プロファイルへの移行 をお読みください。
カスタムの開発プロビジョニングプロファイルを使用している場合は、プロジェクトを構成する方法については カスタム・プロビジョニング・プロファイルの使用 をお読みください。
ビルドとコード署名の問題
チームのプロビジョニングプロファイルをより深く で説明したように Xcode は、開発中にあなたのための管理対象プロファイルをプロビジョニングチームを使用している場合は、あなたのアプリケーションを構築しようとする前に、Xcodeはあなたのためのコード署名とプロビジョニングの問題が修正されます。このケースでは、コード署名アイデンティティの構築を自分で設定はないはずです。カスタム開発プロビジョニングプロファイルを使用して、カスタムプロビジョニングプロファイルを使用するに説明されているように、これらは、ビルド設定を設定したい場合は、このセクションで説明する問題を構築発生する可能性があります。一般的なビルドエラーは、不正なコード署名IDを伴う傾向があります。
アプリをビルドの開始する前には、チームのプロビジョニングプロファイルをより深く で述べたように、Xcode はコード署名とプロビジョニングの問題を修正し、Xcode は、チームのプロビジョニングプロファイルを使用している場合、開発中管理します。この場合は、コード署名 ID ビルド設定を自分では設定しないでください。しかし、カスタムの開発プロビジョニングプロファイルを使用し、これらのビルド設定をしたい場合、「コード署名 ID ビルドを設定する」で説明したように、このセクションで説明したビルド問題に出会う場合があります。一般的なビルドエラーは、不正なコード署名 ID を含む場合があります。
Xcode にはプロビジョニングプロファイルが見つからない
プロビジョニング・プロファイルのアプリ ID が変更した場合など、変更されたバージョンでプロビジョニング・プロファイルを交換した後、以下のようなエラーメッセージを受け取るかも知れません。
このエラーに対処するには、正しいプロビジョニング・プロファイルおよびコード署名 ID が、コード署名 ID ビルド設定の値に選択されていることを確認して下さい。プロジェクトとターゲットのコード署名 ID ビルド設定が異なる場合にも、このエラーが発生することがあります。
Xcode は、証明書を信頼していない
Xcode が、あなたの開発または配布証明書の信頼性を確認できない場合にはいかのエラーメッセージが表示されます。
信頼設定が、[システムのデフォルトを使用する(Use System Defaults)] でない場合、あなたのアプリをビルドし、実行する時、codesign(1) のコマンドラインユーティリティから CSSMERR_TP_TRUSTED のエラーメッセージを受け取るでしょう。デフォルトの[システムのデフォルトを使用する] から、証明書の信頼設定を変更しないでください。開発、配布、および中間証明書を修復するために、以下の手順を実行して下さい。
システムのデフォルトに証明書の信頼レベルを設定するには
- キーチェーンアクセスを起動します。
- [カテゴリー(Category)] のセクションで、[私の証明書(My Certificates)] を選択します。
- 証明書をダブルクリックします。
- [証明書] ウィンドウで、対応する開閉用三角ボタンをクリックして、[信頼(Trust)] のセクションを表示します。
- "この証明書を使用する時" のオプションで、[システムのデフォルトを使用する] を選択します。
- 証明書のウィンドウを閉じます。
- 証明書の情報が、証明書は有効であることを示していることを確認してください。
コード署名 ID ビルド設定がどの証明書とも一致しない
証明書の有効期限が切れているか無効だと、以下のエラーメッセージを受け取ります。
同じコード署名 ID を使用した複数のターゲットでは、ターゲットではなくプロジェクトレベルで、このビルド設定をして下さい。しかしそれが、プロジェクトとターゲットの両方でセットされる場合は、ターゲット設定は、プロジェクト設定をオーバーライドします。ターゲットのコード署名 ID ビルド設定がされている場合は、最初の設定でそれを削除してから[編集(Edit)] > [削除(Delete)] を選択して下さい。最後に、証明書に、プロジェクトのコード署名 ID ビルド設定をします。
開発証明書またはチームのプロビジョニング・プロファイルが、コード署名 ID ポップアップメニューに表示されない場合は、Xcode でプロビジョニングプロファイルのダウンロード で説明したように、プロビジョニング・プロファイルを更新しようとして下さい。Xcode で管理されたプロビジョニング・プロファイルを使用しているなら、Xcode 管理のプロビジョニング・プロファイルへの移行 をお読み下さい。カスタム・プロビジョニング・プロファイルを使用している場合は、カスタム・プロビジョニング・プロファイルの使用 をお読みください。
キーチェーンが、重複したコード署名 ID を含む
2つの開発 ID または2つの配布 ID (あなたのキーチェーンは、それぞれの型でせいぜい一つのコード署名 ID しか含む事が出来ません) などのようにキーチェーンにコード署名 ID が重複してある時に、これらのエラーメッセージのうち一つを受け取るかもしれません。
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 を削除してみてください。
プロビジョニングプロファイルのアプリ ID がアプリのバンドル ID と一致しない
コード署名 ID ビルド設定で選択された、プロビジョニング・プロファイル内の アプリ ID とあなたのアプリのバンドル ID との間に矛盾がある場合、以下のようなエラーメッセージが出ます:
これらのエラーに対処するには、コード署名 ID ビルド設定で指定された証明書とプロビジョニング・プロファイルが正しいこと、およびプロビジョニング・プロファイルが正しいアプリ ID を使用していることを、あなたのバンドル ID が Xcode プロジェクトで正しく設定していることを確認して下さい。
あなたのデバイスが、スキームツールバーメニューでリストされないか不適格
プロジェクトやオープンのワークスペースを持っていて、あなたの接続されたデバイスが、スキームツールバーメニューでリストされないか不適格の場合、デバイスの上にマウスを置き、それがなぜ不適格かの理由を読みます。次のことを確認します。
- アプリのターゲットの iOS バージョンがあなたのデバイスにインストールされている iOS のバージョン以上である事。
- プロジェクトで使用する iOS SDK のバージョン番号は、あなたのデバイス上の iOS のバージョン番号以上である事。
詳細については、ターゲット・デバイスの設定(iOS、watchOS) を参照してください。
例えば、Xcode が iOS の SDK 4.3 を示しているが、あなたのデバイスは iOS 5.0 がインストールされている場合、あなたの Mac 上に iOS SDK 5.0 を含む Xcode のバージョンをインストールする必要があります。
デバッグ情報の問題
デバッグで最も一般的な潜在的な問題は、Xcode がまだあなたのデバイスから情報を収集していないことです。
Xcode はデバイスを接続すると不明の iOS を検出したというダイアログが表示
このメッセージは、Xcode が、以前の iOS の特定のバージョンを見ていなかったときに表示され、デバイスからそのバージョンのデバッグシンボルを (デバイスから) ダウンロードする事が必要です。デバイス上のアプリをデバッグするのが成功するには、Xcode が、デバイスからデバッグシンボルのダウンロードを完了するまで、デバイスを接続されたままにします。
アーカイブと提出の課題
アーカイブ・ウィンドウでアーカイブを選択し、検証と提出のボタンが無効になっている場合、アーカイブが単一の最上位のアプリを含んでいることを確認して下さい。
前の章
次の章