署名 ID と証明書を維持する


アプリにコード署名すると、ユーザーは、あなたのアプリが Apple に既知のソースで作成し、それが改ざんされていないことを信頼できます。すべてのアプリは、コード署名され、特定のサービスを使用するため、デバイス上で起動するようにプロビジョニングされ、テスト用に配布され、または iTunes Connect にアップロードされる必要があります。コード署名は、デジタルにあなたのアプリとインストーラパッケージに署名するために暗号化技術を使用しています。あなたはキーチェーンに格納された署名 ID と開院センターに保存された証明書を作成し、アプリに署名しプロビジョンします。これらのアセットは、一意に、あなたやあなたのチームを識別するので、それらを安全に保つことが重要です。この章では、プロジェクトの寿命を通じて署名 ID および証明書を維持するために実行する一般的なタスクについて説明します。


開発し、テストし、アプリを配布するために使用する、証明書の種類について、には、署名証明書を詳しく をご覧下さい。



重要: チームエージェントは、この章のすべてのタスクを実行できます。あなたがチームの管理者やチームのメンバーである場合、あなたが実行できるタスクについては、チームの特権 を参照してください。



署名 ID と証明書について


アプリへのコード署名は、オペレーティング·システムに、アプリに署名した者を特定させ、それに署名してあるので、アプリが変更されていないことを確認できます。署名はアプリバンドルの中の実行コードが少しでも変更されると署名が無効になるため、アプリの実行可能コードは、その署名で保護されています。画像や nib ファイルなどのリソースは署名されないことに注意してください。そのため、これらのファイルへの変更は、署名を無効にしません。


コード署名は、以下のことを確認するために、アプリ ID、プロビジョニングプロファイル、および権限と組み合わせて使用​​されます。


コード署名はまた、アプリの署名が削除され、信頼できるソースで再署名されることができます。たとえば、iTunes Connect にアップロードする前に、アプリに署名しますが、それを顧客に配布する前に、Apple は、再署名します。また、ストアにアプリのビルドを提出する際に、アプリの完全にテストされた、開発ビルドに再署名し、提出することができます。


Xcode はビルドプロセス中にアプリに署名するために、あなたの署名 ID を使用します。この 署名 ID は、アップルが発行する、公開鍵と秘密鍵のペアで構成されています。公開鍵と秘密鍵のペアは、キーチェーンに保存され、署名を生成するために、暗号機能によって使用されます。あなたの開発者アカウントには証明書が保存されており、公開鍵を含んでいます。中間証明書 も証明書が 認証局 によって発行されていることを確認するために、キーチェーンにあることが要求されます。


アプリを署名するには、署名 ID と中間証明書の両方がキーチェーンにインストールされて持っている必要があります。Xcode をインストールすると、Apple の中間証明書がキーチェーンに追加されます。署名 ID を作成するために Xcode を使ってアプリに署名します。署名 ID はキーチェーンに追加され、対応する証明書は、会員センターのあなたのアカウントに追加されます。


署名 ID は、アプリやインストーラパッケージに署名するために使用されます。開発用証明書 を使用することで署名したアプリがデバイス上で起動することができ、開発プロビジョニングプロファイルでは、チームのメンバーとして、あなたを識別します。配布証明書は、配布プロビジョニングプロファイルにあなたのチームや組織を識別して、ストアにアプリを提出することができます。チームエージェントまたは管理者のみが配布証明書を作成できます。iOS、tvOS、そして watchOS のアプリに、同じ開発·配布証明書を使用する事が出来ます。Mac アプリの場合、異なる開発・配布証明書を使用してください。証明書の種類の完全なリストについては、署名証明書を詳しく を参照してください。


会社の場合、他のチームメンバーは、自分の Mac にインストールされている独自の署名 ID を持っているでしょう。会員センターは、チームの資産のすべてのリポジトリを含みますが、秘密鍵は記憶していません。


certificates_2x


秘密鍵は、お使いの Mac 上でローカルに保存されるため、アカウントのパスワードと同じようにそれは保護して下さい。公開鍵と秘密鍵のペアを安全にバックアップしておいてください。秘密鍵を紛失した場合は、コードに署名するためには全く新しい ID を作成する必要があります。さらに悪いことに、他の誰かがあなたの秘密鍵を持っている場合、彼らはあなたになりすますことができます。悪いやり方では、誰かが悪意あるコードを含むアプリを配布しようとするかもしれません。それはアプリが拒否される可能性があるだけでなく、それはまたあなたの開発者の資格情報が Apple によって取り消される可能性があります。秘密鍵は、キーチェーンに飲み保存され、失われた場合に取り戻すことはできません。


別の Mac を使用してアプリにコード署名したい場合は、証明書を作成するのに使った Mac で開発者プロファイルを、他の Mac にエクスポートし、それを他の Mac でインポートします。また、この機能を使用して複数のチームエージェントの間で配布証明書を共有できます。


署名 ID とプロビジョニングプロファイルの表示


証明書とプロファイルを確認またはトラブルシューティングを行うには、Xcode アカウントの環境設定でそれらを表示します。Xcode はアセットを管理しますが、時折、特定の証明書を作成・無効化したり、プロビジョニング·プロファイルをダウンロードする必要があるかもしれません。




アカウントの詳細を表示するには


  1. [Xcode] > [Preferences(環境設定)] を選択します。
  2. ウィンドウの上部にある[アカウント(Accounts)] をクリックします。
  3. 表示したいチームを選択し、[詳細の表示(View Details)] をクリックします。

  4. 2_aboutaccountsprefs_2x


    表示されるダイアログで、署名 ID とプロビジョニングプロファイルを表示します。[作成(Create)] ボタンが、証明書の隣に表示された場合は、それはまだ作成されていません。 [ダウンロード(Download)] ボタンが、プロビジョニングプロファイルの隣に表示された場合、それはあなたの Mac 上にはありません。


    2_viewdetails_2x


  5. [完了(Done)] をクリックします。



署名 ID を作成


アプリにコード署名する前に、開発用証明書と、後で iTunes Connect にアプリをアップロードするために、配布証明書を作成します。Xcode を使って、必要なすべての種類の証明書と署名 ID を作成することができます。Xcode は作成し、ダウンロードし、および署名 ID をインストールします。


すべてのチームメンバーは、独自の開発用証明書を作成することができます。チームエージェントまたは管理者だけが、配布証明書を作成できます。チームエージェントだけが、開発者 ID 証明書を作成できます。あなたが組織のメンバーシップを持っている場合は、チーム・エージェントがチームメンバーに代わって行うチームの役割とタスクの詳細については、会員センターでチームの管理 をお読みください。


あなたがそれを必要とするとき、Xcode はあなたのために開発用証明書を作成します。たとえば、あなたがチームにプロジェクトを割り当てるか、ID とチーム設定の構成 で説明したように、チームプロビジョニングプロファイルを作成すると、Xcode はあなたの開発証明書を作成し、チームプロビジョニングプロファイルにそれを追加します。このため、通常は Xcode の環境設定ウィンドウを使用して、配布証明書を作成します。


署名 ID を作成するには


  1. Xcode の[環境設定(Preferences)] ウィンドウで、[アカウント(Accounts)] をクリックします。
  2. 使用したいチームを選択し、[詳細の表示(View Details)] をクリックします。


    12_viewdetailsbutton_2x


  3. 表示されるダイアログで、作成したい証明書の種類の行の[作成(Create)] ボタンををクリックします。

  4. [作成] ボタンが無効になっている場合は、署名 ID の種類を作成することはできません。証明書の各タイプの説明については、表14-2 を参照してください。

    12_createdistributioncert_2x


    署名 ID が作成されると、[作成(Create)] ボタンは消えます。


  5. [アカウント設定] に戻るには、[完了(Done)] をクリックします。

これで、開発者プロファイルをエクスポート で説明したように、バックアップを作成するためにあなたの署名 ID のエクスポートができるようになりました。


手順の確認


証明書が正しく、使用するために準備ができていることを確認してください。証明書は、アプリに署名するため、Mac アプリの場合は、インストーラパッケージに署名するために、有効でなければなりません。


初めて、証明書を確認し、Xcode 内でそれらを確認し、それらがそれぞれのツールでどのように表示されるか、どこに位置するか見るために、キーチェーンアクセス、及び会員センターで確認してください。キーチェーンアクセスと会員センターでは、署名 ID と証明書の有効期限を表示します。後で、トラブルシューティングのため、キーチェーンアクセスを使用します。


会員センターを使用し確認


会員センター では、公開鍵を格納するため、Xcode とキーチェーンアクセスと同じ証明書を表示します。


会員センターを使用し署名証明書を確認するには

  1. 証明書、ID とプロファイル で、[証明書(Certificates)] を選択します。
  2. [証明書] セクションで、確認したい証明書の種類に応じて、開発やプロダクトを選択します。

  3. 証明書の型、および有効期限は、キーチェーンで表示される情報と一致する必要があります。


12_portalcerts1_2x

注意: キーチェーン内の証明書の名前は、Xcode と会員センターに表示される証明書の種類とは異なります。ツールに表示される証明書の名前と型の間のマッピングについては、表14-2 を参照してください。


キーチェーンアクセスを使用し確認


キーチェーンアクセスは、署名 ID ごとに、秘密鍵と公開鍵を表示します。




キーチェーンアクセスで署名 ID を確認するには


  1. /Applications/Utilities にあるキーチェーンアクセスを起動します。

  2. Xcode を使って開発または配布証明書を作成すると、証明書が自動的にログインキーチェーンにインストールされます。


  3. 左側のペインで、キーチェーンセクションの「ログイン」を選択し、[カテゴリー(Category)] セクションの[証明書(Certificates)] を選択します。

  4. 開発·配布証明書が、キーチェーンアクセスの[証明書] カテゴリに表示されます。開発用証明書の名前は iOS、tvOS、watchOS アプリ開発者の場合は 「iPhone Developer」で始まり、Mac アプリ開発者の場合は、「Mac Developer」で始まり、自分の名前が続きます (開発証明書は、個人に属します)。


    12_keychaincerts_2x

    証明書の他のタイプも、キーチェーンアクセスの[証明書] カテゴリに表示されます。


    重要:ログインキーチェーンにあなたの個人的なキーチェーン項目を保管してください。あなたの証明書が、ログインキーチェーンに表示されない場合は、デフォルトのキーチェーンではないかもしれません。デフォルトのキーチェーンは、キーチェーンアクセスのキーチェーンの列に太字で表示されます。 デフォルトのキーチェーンがログインでない場合、キーチェーンの列で、ログインを選択し、[ファイル(File)] > [キーチェーン"ログイン"をデフォルトに(Make Keychain "login" Default)] を選択して下さい。


  5. 証明書の左側に、開閉用三角ボタンがあることを確認します。

  6. 証明書の名前の隣にある開閉用三角ボタンをクリックすると、秘密鍵が表示されます。開閉用三角ボタンが表示されない場合は、秘密鍵はなくなりました。(この問題を解決するには コード署名 ID がなくなった場合 をお読みください。)


    12_keychaincerts2_2x


  7. 証明書が有効であることを確認します。

  8. 証明書を選択すると、チェックマークを含む緑色の円が、証明書のリストの上にあるキーチェーンアクセスに表示されます。チェックマークの隣のテキストには、「この証明書が有効です」とあります。




トラブルシューティング


Xcode の証明書とキーチェーンアクセスのものとが会員センター内の証明書と一致しない場合、矛盾を解決する方法については、証明書の問題 をお読みください。


開発者 ID 証明書の追加作成


開発者 ID 証明書は、Mac App Store の外でアプリを配布するために使用されます。他の種類の証明書で開発者 ID 証明書を作る場合は、署名 ID を作成 で説明したように、Xcode を使います。開発者 ID 証明書をもっと欲しい場合は、会員センターを使用して、各タイプの証明書5個まで作成することができます。




重要:チームエージェントだけが、追加の開発者 ID 証明書を作成できます。


開発者 ID 証明書を作成するには


  1. 証明書、ID とプロファイルで、[証明書(Certificates)] を選択します。
  2. 証明書の下で、[すべて(All)] を選択します。
  3. 右上隅にある[追加] ボタン (+) をクリックします。
  4. プロダクトの下で開発者 ID を選択し、[続行(Continue)] をクリックします。

  5. 12_create_developerID_certificate_2x


  6. 証明書の種類、開発者 ID アプリケーションまたは開発者 ID インストーラを選択し、[続行] をクリックします。
  7. キーチェーンアクセスを使用して証明書署名要求(CSR)を作成するには指示に従い、[続行] をクリックしてください。
  8. [ファイルの選択(Choose File)] をクリックします。

  9. 12_create_developerID_certificate2_2x


  10. CSR ファイル(.certSigningRequest 拡張子を持つ) を選択し、[選択(Choose)] をクリックします。
  11. [生成(Generate)]をクリックします。
  12. [ダウンロード]をクリックします。
  13. 証明書ファイルは、ダウンロード(Download) フォルダに表示されます。




キーチェーン内に開発者 ID 証明書をインストールするには、ダウンロードした証明書ファイル(.cer 拡張子を持つ) をダブルクリックします。開発者 ID 証明書は、キーチェーンアクセスの「私の証明書(My Certificates)」のカテゴリに表示されます。


なくなった中間証明権限をインストール


証明書を使用するには、キーチェーンに正しい中間証明書を持っている必要があります。中間証明書は、証明書が、信頼できるソースによって発行されたことを保証します。Xcode をインストールすると、Apple のワールドワイド・デベロッパ・リレーションズ認証権限という名前の中間証明書が、システムのキーチェーンにインストールされます。開発者の ID 証明書の中間証明書は、開発者 ID の認証権限と呼ばれています。誤って中間証明書を削除した場合は、再インストールすることができます。


なくなった中間証明書をインストールするには、Xcode でプロビジョニングプロファイルをダウンロード で説明したようにまず Xcode でプロビジョニングプロファイルをダウンロードしてみてください。それがうまく行かない時は、なくなった中間証明書をダウンロードして、インストールして下さい。




なくなった中間証明書をインストールするには


  1. http://www.apple.com/certificateauthority に移動します。
  2. なくなった中間証明書は、Apple の中間証明書の下のリンクをクリックしてください。

  3. 証明書ファイルは、.cer 拡張子を持ち、あなたのダウンロードフォルダに表示されます。


    12_download_certificate_authority_2x


  4. 証明書ファイルをダブルクリックして、システムのキーチェーンにインストールして下さい。



証明書とプロファイルのエクスポートとインポート


Xcode は、証明書とプロファイルを作成した後、すべてのアセットのバックアップを作成するため、それらをエクスポートします。これをするのは、例えば、秘密鍵がなくなった場合、開発のために使用したり、証明書を修復したりするため、別の Mac にアセットを移します。Xcode でプロファイルをダウンロードしても、なくした秘密鍵を置き換えることはありません。その代わりに、バックアップから証明書およびプロファイルをインポートします。


開発者プロファイル と呼ばれるエクスポートファイルは、以下のチームのアセットを含んでいます。



また、他のチームメンバーと共有する、選択した証明書をエクスポートすることができます。この場合、エクスポートファイルは、選択した、そのまさに証明書が含まれています。


開発者プロファイルをエクスポート


開発者プロファイルは、あなたの資格情報を表すので、署名し、ストアにアプリを提出し、Xcode は暗号化してエクスポートしたファイルをパスワードで保護します。




開発者アカウントの資産をエクスポートするには


  1. [Xcode] > [Preferences(環境設定)]を選択します。
  2. ウィンドウの上部にある[アカウント(Accounts)] をクリックします。
  3. 左下隅にある[アクション(Action)] ボタン([削除(Delete)] ボタンの右にある歯車のアイコン) をクリックし、ポップアップメニューから[開発者アカウントをエクスポート(Export Developper Accounts)] を選択してください。

  4. 12_exportdeveloperprofile_2x


  5. [名前を付けて保存(Save As)] フィールドにファイル名を入力し、[パスワード]と[確認]フィールドの両方にパスワードを入力してください。

  6. ファイルは暗号化され、パスワードで保護されます。


    12_exportdeveloperprofile2_2x


  7. [保存(Save)] をクリックします。

  8. ファイルは、.developerprofile 拡張子で指定した場所に保存されます。


  9. 表示されるダイアログで、[OK] をクリックします。



選択した証明書のエクスポート


プロファイルを除外したいくつかの証明書をエクスポートするには、[詳細]ダイアログで証明書を選択します。


選択した証明書をエクスポートするには

  1. [Xcode] > [環境設定]を選択します。
  2. ウィンドウの上部にある[アカウント]をクリックします。
  3. 表示したいチームを選択し、[詳細の表示(View Details)] をクリックします。
  4. 署名 ID テーブルでエクスポートしたい証明書を Control - クリックし、ポップアップメニューから[エクスポート(Export)] を選択します。

  5. 12_exportcertificates_2x


  6. [名前を付けて保存(Save As)] フィールドにファイル名を入力し、[パスワード(Password)] と[確認(Verify)] フィールドの両方にパスワードを入力します。
  7. ファイルは暗号化され、パスワードで保護されています。


  8. [保存(Save)] をクリックします。
  9. ファイルは、.p12 拡張子で指定した場所に保存されます。


他の方法として、セキュリティ(1) コマンドラインユーティリティを使用して証明書をエクスポートできます。


開発者プロファイルをインポート


別のMacに切り替えたいときや、なくなった秘密鍵を復元したりするために、開発者プロファイルをインポートします。




開発者アカウントの資産をインポートするには


  1. [Xcode] > [環境設定]を選択します。
  2. ウィンドウの上部にある[アカウント(Accounts)] をクリックします。
  3. 左下隅にある[アクション] ボタン (歯車のアイコン) をクリックし、ポップアップメニューから[開発者アカウントをインポート(Import Developer Accounts)] を選択してください。

  4. 12_importdeveloperprofile_2x
  5. 開発者プロファイルを含むファイルを検索して選択し、[開く(Open)] をクリックします。
  6. ファイルは、.developerprofile 拡張子を持つ必要があります。

  7. ファイルを暗号化するために使用されるパスワードを入力し、[OK] をクリックします。
  8. 表示されるダイアログで、[OK] をクリックします。



キーチェーンから署名 ID を削除


署名 ID が無効なら、キーチェーンから削除し、もはや使用しなくなった(おそらくそれらは、あなたがメンバーだった前のチームに属していた)、または秘密鍵がなくなり、その結果、使用できない場合、秘密鍵がなくなると、署名 ID のバックアップがある場合は、すぐに署名 ID を削除した後に、「開発者プロファイルをインポート」で説明したように、開発者プロファイルをインポートします。いくつかの他の理由で署名 ID を削除するなら証明書を再作成し関連するプロビジョニングプロファイルの更新の全ての手順を踏めば、後でコード署名の問題を回避できます。



警告: 開発者プロファイルのファイルからインポートしない限り、キーチェーンから一度削除すると、秘密鍵は再度作成できません。秘密鍵がなければ、証明書を使用してアプリに署名することはできません。






キーチェーンから署名 ID を削除するには

  1. (/Applications/Utilities にある) キーチェーンアクセスを起動します。
  2. カテゴリーのセクションで、[キー(Keys)] を選択します。
  3. 関連する証明書を明らかにするため、すべての秘密鍵の開閉用三角ボタンをクリックします。

  4. 12_tb_ios_remove_keys_2x
  5. 削除する証明書に関連する秘密鍵をすべて選択します。
  6. キーチェーンアクセスで表示される名前で証明書の種類を認識する方法については、表 14-2 を参照してください。

  7. 各秘密鍵に対応する公開鍵を選択します。
  8. (キーボード上の)[削除(Delete)] を押し、ダイアログが表示されたら、[削除(Deltete)] をクリックします。
  9. カテゴリーのセクションで、[証明書(Certificates)] を選択します。
  10. 削除したいすべての証明書を選択します。
  11. 証明書は、秘密鍵を持っていません。

  12. (キーボード上の)[削除] を押し、ダイアログが表示されたら、[削除] をクリックします。



証明書の破棄


証明書を再作成するときや、別のコード署名の問題(発生しうる問題のタイプについては、証明書の問題 を参照してください)のため、それらをもはや必要としない場合、証明書を破棄します。それらが危険にさらされていることが疑われる場合にも、証明書を破棄します。会社のためのチームの管理者であれば、プロジェクトの作業をもはやしないチームメンバーの開発証明書を破棄したいと思うでしょう。証明書の破棄は、プロビジョニングプロファイルを無効にする事なので、それ以降のコード署名の問題を回避するために、証明書を再作成し関連するプロビジョニングプロファイルの更新内のすべてのステップを踏んで下さい。


破棄する特権


表 14-1 に、各チームメンバーが破棄することができる、証明書の種類を示します。個人の開発者は、一人のチームのチームエージェントあり、指示されている場合を除き、開発と配布の証明書のすべてのタイプを破棄するための権限を持っていることを意味します。会社の場合、いずれのチームメンバーでも、自分の開発用証明書を破棄することができますが、彼または彼女が、チームエージェントまたは管理者であれば、チームのメンバーは、配布証明書を破棄することだけができます。


表 14-1 チーム証明書を破棄する権限

証明書の種類チームエージェントチーム管理者チームメンバー
開発証明書:
iOS の開発
Mac の開発
他のチームの管理者とメンバーの証明書:
iOS の開発
Mac の開発
チームエージェントの証明書:
iOS の開発
Mac の開発
ストア流通証明書:
iOS の配布
Mac アプリの配布
Mac インストーラの配布
開発者の ID 証明書:
開発者 ID のアプリケーション
開発者 ID のインストーラ
通知証明書をプッシュする:
APNs の開発 iOS
APNs の生産 iOS
APNs を開発 Mac
APNs を生産 Mac
パス証明書:
パスタイプ ID

会員センターを使用して開発者の ID やパスブックの証明書を破棄することはできません。その代わりに、この種の証明書を破棄するには product-security@apple.com でアップルに要求を送信して下さい。

Apple が開発者 ID 証明書を破棄した場合、ユーザーは、もはや、その証明書で署名されたアプリケーションをインストールすることはできません。開発者 ID 証明書を破棄する代わりに、開発者 ID 証明書の追加要求 で説明したように会員センターを使用して、追加の開発者 ID 証明書を作成することができます。


Xcode を使用して開発証明書のリセット


破棄したい開発用証明書が、Xcode の[アカウント]の環境設定で表示される場合は - それはあなたの Mac 上で作成した証明書で、キーチェーンの中にありますが - Xcode を使って破棄することができます。そうでなければ、会員センターを使用して証明書の破棄で述べたように、会員センターを使って証明書を破棄できます。(Xcode を使用して配布証明書を破棄しようとすると、会員センターにリダイレクトされます。)




Xcode を使用して、開発証明書を破棄するには

  1. [Xcode] > [環境設定(Preferences)] を選択し、ウィンドウの上部にある[アカウント(Accounts)] をクリックします。
  2. あなたのチームを選択し、[詳細の表示(View Details)] をクリックします。
  3. 表示されるダイアログで、破棄して再作成したい署名 ID のアクション列内のリセットボタンをクリックします。

  4. 12_revoke_certificate_2_2x


  5. 表示されるダイアログで、[完了(Done)] をクリックします。



会員センターを使用して証明書の破棄


あなたのチームに所属する、証明書の全ての種類を破棄するには会員センターを使用します。たとえば、不要になったか、再作成する必要のない他のチームメンバーまたは配布証明書のための開発証明書を破棄します。




会員センターを使用して証明書を破棄する

  1. 証明書、ID とプロファイルで、証明書を選択します。
  2. 証明書の下で、[すべて]を選択します。
  3. 破棄したい証明書を選択し、[破棄]をクリックします。

  4. 12_tb_ios_certificates_2x


  5. 表示されるダイアログで、[破棄(Revoke)] をクリックして下さい。



期限切れの証明書の交換


開発または配布証明書の有効期限が切れると、それを削除して Xcode で新しい証明書を要求します。証明書を再作成し関連するプロビジョニングプロファイルの更新で述べたように、証明書を再作成するのに同じ手順に従ってください。キーチェーンアクセスや会員センターを使い、署名 ID と証明書の有効期限を表示するには、会員センター使用で検証キーチェーンアクセス使用で検証 に記載されているようにして下さい。


証明書を再作成し関連するプロビジョニングプロファイルの更新


これらのアセットは関連しており、お使いの Mac と会員センターの両方に常駐しているため証明書を再作成し、関連するプロビジョニング·プロファイルを更新するのは、簡単な作業ではありません。証明書を破棄すると、証明書を含むすべてのプロビジョニングプロファイルが無効になります。Xcode は自動的にチームのプロビジョニングプロファイルを再生成しますが、プロビジョニングプロファイルの他のタイプは自分自身で管理して下さい。このセクションでは、完全にコード署名の資産を復元するために実行するすべての手順を説明します。


証明書を再作成したり、関連するプロビジョニングプロファイルの更新するいくつかの理由があります。たとえば、次の操作を行います:


しかしながら、これらの手順を実行する前に、証明書を削除すると、元に戻すことはできませんので、証明書、プロビジョニング、またはビルドについて問題を経験している場合は、最初に証明書の問題 をお読み下さい。

再作成する証明書を選択します。あなたはデバイス上のアプリを実行している問題が発生した場合は、あなただけの再作成、開発証明書に必要な場合があります。再作成、配布証明書は、開発証明書や開発プロビジョニングプロファイルには影響しないことに注意してください。同様に、再作成開発用証明書を使用しているディストリビューション証明書または配布プロビジョニングプロファイルには影響しません。



重要: 開発と配布証明書の再作成は、ストアに提出したアプリに影響せず、またそれを更新するのに影響しません。



証明書を再作成し関連するプロビジョニングプロファイルを更新するには


  1. 証明書の破棄 で説明したように、会員センターを使用して証明書を破棄します。
  2. 破棄した証明書を含む、プロビジョニングプロファイルは無効になります。例えば、開発用証明書を破棄すると、その証明書を含むすべての開発プロビジョニングプロファイルが無効になります。


    12_ios_invalid_profiles_2x


  3. 必要に応じて、キーチェーンから署名 ID を削除 の説明に従って、キーチェーンからこれらの証明書の署名 ID を削除して下さい。
  4. 独自の開発や配布証明書を破棄した場合、キーチェーンから対応する署名 ID を削除して下さい。そうでなければ、証明書の所有者が自分の Mac 上から署名 ID を削除する必要があります。

  5. 必要に応じて、署名 ID を要求 で説明したように、Xcode を使用して、新しい証明書を要求します。
  6. Xcode でプロビジョニングプロファイル更新 で説明したように、Xcode で新規開発証明書またはプロビジョニングプロファイルの更新を要求して、開発用証明書を破棄した場合、チームのプロビジョニング·プロファイルを再生成します。これらのアクションのいずれかを実行した後は、それらはもはや会員センター内では無効と表示されません。


    12_ios_invalid_profiles2_2x


  7. 会員センターでプロビジョニングプロファイル編集 で説明したように、破棄した証明書を含んでいるプロビジョニングプロファイルの他のタイプを削除するか、再生成します。
  8. Xcode は配布プロビジョニングプロファイルや、会員センターを使用して作成するカスタムの開発プロビジョニング·プロファイルを自動的には再生成しません。


  9. 会員センターでプロビジョニングプロファイルを変更した場合、Xcode でプロビジョニングプロファイル更新 で説明したように、Xcode でプロビジョニングプロファイルを更新します。
  10. 必要に応じて、デバイスからプロビジョニングプロファイルの削除説明したように、デバイス上の変更されたプロビジョニングプロファイルをインストールします。
  11. 証明書は、最初の Mac で修復された後は、開発者プロファイルをエクスポート で説明したように、開発者プロファイルをエクスポートします。

複数の Mac を修復している場合は、他の Mac で以下の追加の手順を実行して下さい。


  1. キーチェーンから署名 ID を削除 で説明したように、キーチェーンから署名 ID を削除します。
  2. 開発者プロファイルをインポート の説明に従って、元の Mac で作成した開発者プロファイルをインポートします。

署名証明書を詳しく


キーチェーンに保存されているコード署名 ID は、お使いの iOS と Mac プログラムの開発と配布の資格情報を表します。これらはリストに表示されているため、誤ってキーチェーンや会員センターからそれらを削除しないように、それらは、メニューに表示され、証明書の種類のため、これらの証明書の名前に精通している必要があります。


異なる目的のために署名証明書の異なる種類があります。開発証明書は、あなたのチームの人を特定し、デバイス上でアプリを実行するために使用されます。開発およびテスト中に、デバイスで動作するすべての iOS アプリに署名する必要があり、iCloud とゲームセンターのような特定の技術を使用する Mac アプリにも署名しなければなりません。


配布証明書は、チームを特定し、ストアにアプリを提出するか、Mac アプリでは、ストアの外に配布するために使用されます。会社の場合は、配布証明書は、アプリを提出する権限を持っているチームメンバーで共有されます。配布証明書と、配布の具体的な方法に関連する多数の種類があります。異なるコード署名 ID も iOS と Mac アプリに使用されます。


署名証明書は、Apple 社によって発行され、承認されています。Apple が提供する中間証明書は、証明書が使用できるようにシステムのキーチェーンにインストールしておく必要があります。それ以外では、無効です。Apple が提供する、Xcode によってインストールされる中間証明書は、次のとおりです:


証明書の型の間のマッピングについては、表 14-2 を参照してください。証明書の名前は、キーチェーンアクセスに表示され、それぞれの目的によって異なります。


会員センターは、チーム名(または個人名)と、各証明書の種類を表示します。Xcode のアカウント環境設定は署名 ID 欄に証明書の種類を表示します。キーチェーンアクセスおよび Xcode でのコード署名 ID のビルド設定ポップアップメニューは、証明書の名前が表示します。


チームメンバーごとに1つの Mac や iOS の開発用証明書があります。そのため、開発用証明書の名前は、個人の名前を含んでいます。証明書の他のすべての型は、チーム (複数のチームメンバーが共有する) が所有し、そのように、チーム名を含んでいます。個人の開発者の場合、1人のチームなので、あなたの名前とチーム名は同じです。


表 14-2 証明書の種類と名前

証明書の種類証明書の名前説明
iOS の開発iPhone 開発者:チームメンバー名デバイス上で iOS アプリを実行して、開発中に、特定の技術やサービスを使用するため
iOS の配布iPhone の配布:チーム名テストのために指定されたデバイス上に iOS アプリを配布するために、または App Store にそれを提出するため
Mac の開発Mac 開発者:チームメンバー名開発およびテスト中に、特定の技術やサービスを有効にするため
Mac アプリの配布サードパーティ Mac 開発者アプリ:チーム名Mac App Store に提出する前に、Mac アプリの署名に
Mac インストーラの配布サードパーティ Mac 開発者インストーラ:チーム名Mac App Store に、署名されたアプリを含む、Mac のインストーラパッケージに署名して提出する場合に
開発者 ID のアプリ開発者 ID アプリ:チーム名Mac App Store の外で配布する前に、Mac アプリの署名に
開発者 ID のインストーラ開発者 ID のインストーラ:チーム名Mac App Store の外で、署名済みのアプリを含む、Mac のインストーラパッケージに署名して配布するために

総括


この章では、アプリの寿命全体を通じて、開発と配布の署名 ID を維持する方法を学びました。また、Xcode、キーチェーンアクセス、および会員センター内での証明書の様々なタイプを識別する方法を学びました。





前の章
次の章

目次
Xcode の新機能
====================
  • アプリの配布について:序文
  • アプリの軽量化(iOS、tvOS、watchOS)
  • スライス(iOS、tvOS)
    ビットコード
    オンデマンド・リソース(iOS、tvOS)
  • アカウントの管理
  • Apple 開発者プログラムについて
    個人または企業としての登録を選択
    複数のチームに参加できます
    Xcode に Apple ID アカウントを追加
    総括
  • 配布用に Xcode のプロジェクトを構成
  • Xcode プロジェクトを作成する際のプロパティの設定
    プロジェクトの構成を開始する前に
  • ID とチーム設定の構成
  • バンドル ID について
    バンドル ID の設定
    署名 ID の選択(Mac)
    チームに Xcode プロジェクトの割り当て
    チーム・プロビジョニング·プロファイルの作成
    アプリのカテゴリの設定(Mac)
    バージョン番号とビルド文字列を設定
  • 展開情報の設定
  • 展開ターゲットの設定
    ターゲット・デバイスの設定(iOS、watchOS)
  • アプリアイコンと起動スクリーンファイルの追加
  • 画像の準備
    アセットカタログにアプリアイコンを追加
    起動スクリーンファイルの作成
    起動イメージの追加とスクリーンショットのキャプチャ
    個々のアプリアイコンと起動イメージファイルを設定
    アセットカタログにイメージを移行
    著作キーの設定(Mac)
  • ビルド設定の確認
  • iOS アプリのアーキテクチャを設定
    ベース SDK を設定する
    デバッグ情報の形式を設定
    総括
  • 機能の追加
  • 資格について
    始める前に
    アプリ・サンドボックスの設定(Mac)
  • iCloud サポートの追加
  • iCloud を有効にする
    キー値の保管の構成
    書類の保管の構成
    CloudKit を使用
    カスタムコンテナの指定
  • プッシュ通知の構成
  • プッシュ通知を有効に
    プッシュ通知クライアントの SSL 証明書の作成
    手順の確認
  • サーバーでクライアントの SSL 署名 ID のインストール
  • ゲームセンターを有効にする(iOS、tvOS、Mac)
    ゲームコントローラを有効にする(tvOS)
    ウォレットの構成 (iOS、WatchKit 拡張機能)
  • Apple ペイの構成 (iOS、WatchKit 拡張機能)
  • アプリ内購入を有効にする(iOS、tvOS、Mac)
    パーソナル VPN を有効にする (iOS、Mac)
  • マップの構成(iOS、WatchKit 機能拡張、Mac)
  • Xcode でマップを有効化
    ルーティングアプリの構成 (iOS、WatchKit 機能拡張)
    ルーティング方向を提供
    iTunes Connect でアプリレコードの作成
    ストアにビルドを提出
    iTunes Connect に地理的範囲ファイルのアップロード
  • 背景モードの構成 (iOS、tvOS、WatchKit アプリ)
  • アプリ内オーディオを有効にする (iOS)
  • キーチェーン共有の構成
  • 関連ドメインの構成 (iOS、WatchKit 拡張機能)
  • アプリグループの構成
    HomeKit 追加 (iOS、WatchKit 拡張機能)
    データ保護を有効にする (iOS、WatchKit 機能拡張、tvOS)
    HealthKit の追加 (iOS、WatchKit 機能拡張)
    無線アクセサリー構成の有効化 (iOS)
    ニューススタンドの構成(iOS、WatchKit 拡張機能)
    トラブルシューティング
    総括
  • デバイス上でアプリを起動
  • Mac アプリの起動
    デバイス上でアプリの起動(iOS、tvOS、watchOS)
    スキームメニューからデバイスを削除
    デバイスからアプリを削除(iOS、tvOS、watchOS)
    手順の確認
    トラブルシューティング
    チームのプロビジョニングプロファイルをより詳しく
    総括
  • テストの為アプリをエクスポート(iOS、tvOS、watchOS)
  • 臨時のプロビジョニングプロファイルについて
    テストデバイスの登録
    アプリのアーカイブ
    ストア外でのテスト用にアプリをエクスポート
  • Xcode を使ってテストデバイスにアプリをインストール
  • iTunes を使ってテストデバイスにアプリをインストール (iOS、watchOS)
    Apple コンフィギュレータ2 (iOS、watchOS、tvOS) を使用してテストデバイスにアプリをインストール
    Xcode サーバーを使ってアプリの配布
    テスターからのクラッシュレポートを勧誘
    臨時のプロビジョニングプロファイルをより詳しく
    総括
  • テストのためアプリをエクスポート (Mac)
    テスト用 Mac の登録
    アプリのアーカイブ
    チームプロビジョニングプロファイルを使ってアプリをエクスポート
    テスト用 Mac 上にアプリをインストール
    Mac のインストーラパッケージをテスト
    インストーラパッケージを作成
    インストーラパッケージをテスト
  • iTunes Connect にアプリをアップロード
    ストアのプロビジョニングプロファイルについて
    iTunes Connect でアプリレコードの作成
    バージョンとビルド文字列を更新
  • アプリをアーカイブ
  • アーカイブスキーム設定の確認
    アーカイブの作成
    iTunes Connect の検証テストの実行
    アプリをアップロード
  • TestFlight を使ったアプリの配布 (iOS、tvOS、watchOS)
  • クラッシュレポートの分析
  • クラッシュレポートサービスについて
    クラッシュレポートを表示する前に
  • クラッシュオーガナイザでクラッシュレポートの表示
  • クラッシュレポートの表示と検索
    クラッシュレポートの情報を編集
  • デバッグナビゲータでソースコードを開く
    クラッシュレポートの統計情報の表示
  • アプリ開発者とクラッシュデータの共有
  • デバイスウィンドウでクラッシュの表示とインポート
    Xcode でクラッシュの再現
  • ストアにアプリの提出
    提出用のアプリを用意
    ヒューマンインタフェースとストアガイドラインを確認
    iTunes Connect に追加情報を入力
    最終候補をアップロード
    アプリを提出
    総括
  • iTunes Connect でアプリの管理
  • iTunes Connect のユーザーの役割と権限について
    iTunes Connect へのアクセス
    iTunes Connect のユーザーの追加と役割の表示
    アプリレコードの作成
    iOS のアプリレコードに tvOS アプリを追加
    アプリのステータスの表示
    分析を表示
    カスタマーレビューの表示
    アプリの新しいバージョンを作成する
    総括
  • 会員センターでのチームの管理
  • Apple デベロッパプログラムのチームの役割と権限
  • チームの役割
    チームの特権
    チームのエージェント
  • チームメンバーを招聘し役割を割り当てる
  • チームメンバーを招聘する
    チームの役割を変更
    チームメンバーのデバイスを登録
    チームエージェントの役割を移動
    チームメンバーの削除
  • 署名 ID と証明書を維持する
  • 署名 ID と証明書について
    署名 ID とプロビジョニングプロファイルの表示
  • 署名 ID の作成
  • 手順の確認
  • 会員センターを使用し確認
    キーチェーンアクセスを使用し確認
    トラブルシューティング
    開発者 ID 証明書の追加作成
    なくなった中間証明権限をインストール
  • 証明書とプロファイルのエクスポートとインポート
    開発者プロファイルをエクスポート
    選択した証明書のエクスポート
    開発者プロファイルをインポート
    キーチェーンから署名 ID を削除
  • 証明書の破棄
  • 破棄する特権
    Xcode を使用して開発証明書のリセット
    会員センターを使用して証明書の破棄
    期限切れの証明書の交換
    証明書を再作成し関連するプロビジョニングプロファイルの更新
    プッシュ通知クライアントの SSL証明書の作成
  • コード署名 ID ビルドを設定する
  • トラブルシューティング
    署名証明書を詳しく
    総括
  • ID、デバイス、プロファイルの維持
  • アプリ ID の登録
    アプリ ID の編集
    アプリ ID の削除
    チーム ID を検索する
  • 会員センターを使用してデバイスを登録する
  • デバイス ID の検索
  • Xcode を使用してデバイス ID を検索
    iTunes を使って iOS のデバイス IDを検索(iOS,tvOS)
    システム情報を使用してデバイス ID 検索(iOS,tvOS,Mac)
    個々のデバイスを登録
  • 複数のデバイスを登録
  • Apple コンフィギュレータを使用してプロパティリストのデバイスファイルを作成
    プレインテキストのデバイスファイルの作成
    デバイスファイルのアップロード
    あなたの iOS または Apple TV デバイスにプレリリースのインストール
    会員センターを使ってデバイスを無効/有効にする
    デバイス上のアプリの管理
    デバイスからアプリの削除
    会員センターを使用してプロビジョニングプロファイルの作成
    開発用プロビジョニング・プロファイルの作成
    アドホック・プロビジョニング・プロファイルの作成(iOS、tvOS、watchOS)
    ストアのプロビジョニングプロファイルの作成
    Xcode でプロビジョニングプロファイルのダウンロード
    カスタム・プロビジョニング・プロファイルの使用
    トラブルシューティング
    Xcode 管理のプロビジョニング・プロファイルへの移行
    会員センターでプロビジョニングプロファイル編集
    期限切れのプロビジョニングプロファイルの更新
    デバイス上のプロビジョニングプロファイルの確認と削除
    会員センターからプロビジョニングプロファイルを削除
    会員センターからプロビジョニングプロファイルをダウンロード
    アプリのバイナリ資格の確認
    総括
    Apple 開発者エンタープライズプログラムアプリの配布
    Apple 開発者エンタープライズプログラムアプリの開発
    あなたのチームをビルドする(チームエージェント)
    共有したチームプロビジョニングプロファイルの作成 (チーム管理者)
    開発の開始(チームメンバー)
    Apple 開発者エンタープライズプログラムアプリのテスト
    追加のエンタープライズ配布証明書の作成
    期限切れの証明書とプロビジョニング・プロファイルの管理
    あなたのアプリの社内でのエクスポート
    アーカイブの作成
    iOS アプリのファイルの作成
    手動でエンタープライズ開発者を信頼
    サーバーツールについて詳しく知る
    総括
  • Mac App Store 外でのアプリの配布
  • 開発者 ID の署名付きアプリとインストーラパッケージの作成
    開発者 ID にコード署名 ID の設定
  • 開発者 ID 証明書の作成
  • アーカイブの作成
    開発者 ID 署名のアプリの検証
    開発者 ID 署名のアプリのエクスポート
    インストーラパッケージに署名
  • 手順の確認
  • ゲートキーパーの有効化と無効化
  • ゲートキーパーの動作のテスト
  • 開発者 ID で署名されたアプリのテスト
    起動動作をテスト
    ゲートキーパーの動作テストに備えるため
    総括
  • トラブルシューティング
  • 証明書の問題
  • コード署名 ID をなくした時
    一致するプロビジョニングプロファイルがない時
    署名 ID の秘密鍵がなくなった場合
    開発者 ID 証明書の秘密鍵がなくなった場合
    中間証明書がないので証明書が無効
    証明書は、信頼に問題あり
    証明書は、有効期限が切れている
    要求がタイムアウトした
    プロビジョニングプロファイルや署名 ID が Xcode のメニューに表示されない
  • プロビジョニングの問題
  • デバイスにインストールされたプロビジョニングプロファイルが無効
    プロビジョニングプロファイルが会員センター内で無効とされる
    そのようなプロビジョニングプロファイルは見つからない
  • ビルドとコード署名の問題
  • Xcode にはプロビジョニングプロファイルが見つからない
    Xcode は、証明書を信頼していない
    コード署名 ID ビルド設定がどの証明書とも一致しない
    キーチェーンが、重複したコード署名 ID を含む
    プロビジョニングプロファイルのアプリ ID がアプリのバンドル ID と一致しない
    あなたのデバイスが、スキームツールバーメニューでリストされないか不適格
    デバッグ情報の問題
    Xcode はデバイスを接続すると不明の iOS を検出したというダイアログが表示
    アーカイブと提出の課題
    サポートされている機能
    文書改訂履歴
    用語集














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ














    トップへ