【Apple】APNsの連携に必要な設定(p12証明書方式)

更新

このページは、2024/3/31にサービスが終了するニフティクラウドのmobile backendから参考になる部分を抜き取ってきています。

ニフクラ、今までありがとう。

APNsの連携に必要な設定(p12証明書方式)

p12証明書を取得するのに必要なこと

  • iOS Developer Programへの登録

iOS Developer Programの登録は有料であり、Appleへの料金が発生します。
詳細はAppleのページをご覧ください。
以下では、iOS Developer Program登録後の手順について説明していきます。

証明書を取得するまでの流れ

証明書の管理画面を開く

Appleの開発者サイトから、Accountを開き、
Appleのアカウントでログインします。

ログイン後の画面が以下のようになり、その中の
Certificates, Identifiers & Profilesの項目にあるリンクをクリックします。

Apple Developer のアカウント画面で Certificates, Identifiers & Profiles を囲んだ図

アプリを登録する

Appleにアプリを登録することで、証明書が作成できます。
左メニューのIdentifiersを開き、Identifiersの隣にある+ボタンをクリックすると、
Register a New Identifierの画面が開きます。

Identifiers の一覧で左メニューと「+」ボタンを矢印で示した図

こちらの画面で、App IDsにチェックを入れ、Continueをクリックすると、アプリの登録画面が開きます。

Register a New Identifier で App IDs を選び Continue を押す図

アプリの登録画面では以下の3点を設定し、登録を行ってください。

  • App ID Description(アプリ名)
  • Bundle ID(Xcodeで表示されるBundle Identifier)
    • 確認方法
      • Xcodeを開く
      • 左側のファイル一覧から、プロジェクトをクリックし設定画面を開く
      • 作成されているTARGETを選択し、Generalの項目を開く
  • Push Notificationを有効にする

登録時の画面サンプルは以下のようになります。

Register an App ID の入力例。Push Notifications にチェックを入れた画面

証明書を作成する

左メニューのCertificatesを開き、Certificatesの隣にある+ボタンをクリックすると、
Create a New Certificateの画面が開きます。

Certificates の一覧で左メニューと「+」ボタンを示した図

証明書の作成画面が表示されるので、下の方にあるServicesの項目にある必要なAPNs証明書を選択してください。

  • iOS Apple Push Notification service SSL (Sandbox):開発用のプッシュ通知証明書
  • Apple Push Notification service SSL (Sandbox & Production):本番用のプッシュ通知証明書

なお、リリースされるアプリ(本番用アプリ)に対して開発用証明書を設定した場合、badDeviceTokenが発生してしまいますのでご注意ください。
※badDeviceTokenについてはこちら

  • 開発用:Apple Push Notification service SSL (Sandbox) を選択

Create a New Certificate で開発用の APNs SSL (Sandbox) を選ぶ図

  • 本番用:Apple Push Notification service SSL (Sandbox & Production) を選択
    • 本来は開発用と本番用を兼ねた証明書ですが、ニフクラ mobile backendに設定する場合は本番用として設定してください。

Create a New Certificate で本番用の APNs SSL (Sandbox & Production) を選ぶ図

どのアプリに紐づいた証明書を作成するのか選択する必要があります。
下のプルダウンメニューにAppleに登録されたアプリの一覧が表示されるので、
証明書を作成するアプリを選択してください。

証明書を作るアプリを App ID のプルダウンから選ぶ画面

次の画面では、CSRファイルを選択する必要がありますので、CSRファイルについて説明して行きます。

CSRファイルは、開発者証明書を登録する際に既に作成済みの場合、再度作成する必要がありません。
まだ作成されていない場合、以下の手順でキーチェーンアクセスから作成します。
キーチェーンアクセスのメニューから証明書アシスタント>認証局に証明書を要求…を選択します。

キーチェーンアクセスの証明書アシスタントから「認証局に証明書を要求」を選ぶメニュー

メールアドレスと通称を設定し、ディスクに保存を選択して、続けるボタンをクリックします。
CSRファイルの保存場所を決めて、保存してください。

証明書アシスタントでメールアドレスと通称を入れ、ディスクに保存を選ぶ画面

証明書作成画面に戻り、CSRファイルをアップロードしてください。

証明書の作成画面で Choose File から CSR ファイルを選ぶ図

証明書の作成が完了すると、証明書をダウンロードすることができます。

Download Your Certificate の画面で Download ボタンを示した図

(参考)Certificatesの一覧ではTYPEとしてそれぞれ以下のように表示されます。

  • 開発用:Apple Sandbox Push Services
  • 本番用:Apple Push Services

Certificates 一覧に Apple Push Services と Sandbox Push Services が並ぶ画面

証明書を.p12形式に変換する

ダウンロードした証明書をダブルクリックすると、キーチェーンアクセスが開きます。
証明書を選択し、メニューを表示して書き出しを選択してください。
このとき下の図のように、証明書と秘密鍵を両方表示して証明書のみ書き出してください。
秘密鍵をセットにして証明書を書き出すと、プッシュ通知を配信するときにエラーとなります。

キーチェーンアクセスで証明書だけを選び「書き出す」を選ぶメニュー

保存名と場所を指定し、保存ボタンをクリックしてください。

証明書を p12 形式で保存する名前と場所の指定ダイアログ

書き出す証明書に対してパスワードを設定する画面が開きますが、設定せずにOKボタンをクリックしてください。