サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >チュートリアル(Obj-C):mBaaSとAPNsの連携に必要な設定(p12証明書方式)

チュートリアル(Obj-C)

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

概要

iOS端末へのプッシュ通知は、APNs(Apple Push Notification service)と連携しています。
mobile backendに登録されたプッシュ通知を、APNsに送信することで、
各端末にプッシュ通知が受信される仕組みです。

mobile backendとAPNsを連携させるには、管理画面からp12証明書ファイル、またはp8認証キーファイルを含む認証情報の設定が必要です。

このチュートリアルでは、APNsと連携するためのp12証明書ファイルを取得し、ニフクラmobile backendに設定する流れについて説明していきます。

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

  • iOS Developer Programへの登録

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

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

証明書の管理画面を開く

Apple Developer

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

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

Accountを開く

アプリを登録する

Apple Developer

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

アプリの登録

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

アプリの登録

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

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

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

アプリの登録

証明書を作成する

Apple Developer

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

Member Centerを開く

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

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

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

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

開発用証明書を選択

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

本番用証明書を選択

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

Member Centerを開く

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

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

Member Centerを開く

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

Member Centerを開く

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

Apple Developer
Member Centerを開く

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

Member Centerを開く

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

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

Member Centerを開く

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

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

キーチェーンアクセス
Member Centerを開く

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

Member Centerを開く

書き出す証明書に対してパスワードを設定する画面が開きますが、設定せずにOKボタンをクリックしてください。
パスワードを設定すると、mobile backendにアップロードしても利用できなくなります。

ニフクラ mobile backendでの設定

次に、書き出されたp12証明書ファイルをニフクラ mobile backendに設定します。

プッシュ通知の有効化

アプリ設定から、左メニューのプッシュ通知の項目を選択してください。
プッシュ通知の許可設定を行う部分があるので「許可する」に変更し、変更を保存してください。

プッシュ通知の有効化

APNs用証明書のアップロード

Appleの開発者サイトで取得した証明書をアップロードすることで、
APNsとニフクラ mobile backendが連携できるようになります。
証明書の追加

APNsの証明書は、開発用とリリース用の2種類があります。
以下のように、別の証明書を用意してニフクラ mobile backendに設定する必要があります。

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

ニフクラ mobile backendに登録される端末情報は、
その時設定されていた証明書と紐付いているため、証明書を変更すると
mobile backendに登録されているデバイストークン(端末固有の文字列)が
無効になってしまい、端末にプッシュ通知が配信されなくなります。

iOSへのプッシュ通知を行う場合は、
開発用とリリース用でニフクラ mobile backend上にアプリを2つ作成し、
それぞれに開発用・リリース用の証明書を設定してください。

※注意

  • p12証明書とp8認証キーファイルを含む認証情報が設定されている場合につきましては、p8認証キー情報を優先し証明書はプッシュ通知の送信に利用いたしません。
  • アップロードするファイルの名前にはルールがありますので、ご注意ください。 詳細は、開発ガイドライン:ファイルストアについてをご参照ください。

以上の設定で、ニフクラ mobile backendとAPNsを連携することができました。

証明書の有効期限について

証明書の有効期限が切れてしまった場合は、プッシュ通知配信が出来なくなります。有効期限が切れる前に証明書の更新を行ってください。
ただしp8認証キーファイルを含む認証情報が設定されている場合につきましては、こちらを優先し証明書は利用しないため有効期限切れであっても問題ございません。
※なお、iOS/Android両端末にプッシュ通知配信する設定をしている場合は、実際にはAndroid端末のみへの配信であっても、証明書の確認でエラーとなり、プッシュ通知が配信されませんので、ご注意ください。

  • 管理画面操作での注意点
    mbaas管理画面
    Androidのみを選択
    iOS向けの証明書、認証情報が有効でない場合にAndroid端末にのみプッシュ通知を配信する場合は、「Android端末に配信する」にのみチェックを入れてください。

  • REST APIでの注意点

    • 証明書の有効期限が切れている間にAndroid端末にのみプッシュ通知を配信する場合は、ターゲットにてandroidのみを設定してください。
"target":["android"]

証明書の更新について

証明書を更新するには、まず 証明書を取得するまでの流れ と同じく証明書を新規作成します。
この時、証明書を更新するアプリに影響しないようにするため、作成時に利用するbundleIDや開発者証明書等の情報は、以前作成した証明書と同じ情報を使うようにしてください。
そして、新しい証明書をニフクラ mobile backendにアップロードすることで、証明書が更新されます。

※注意

  • 証明書を切り替えている間に配信時刻を迎えたプッシュ通知はエラー(エラーステータス : 4 | エラーのため配信依頼未実施で終了(APIキー不正、証明書不正 等) もしくは配信依頼が完了したが全てでエラー発生)になってしまうため、できるだけプッシュ通知配信が行われない時間帯に切り替えを行ってください。また、エラーとなったプッシュ通知は証明書更新後に自動で再送されることはありません。

エラーについての詳細はリンクにて「プッシュ通知のステータスについて」をご確認ください。

不正な証明書

証明書が不正である場合、プッシュ通知が配信できません。
不正な証明書となる原因として、下記事項が考えられます。ご確認ください。

  • 証明書がp12形式ファイルでない
  • 証明書をp12ファイルに書き出す際に、パスワードを設定している
  • 証明書の有効期限が切れている
  • プッシュ通知証明書ではない、別の証明書を誤って設定している
    • iOS端末でプッシュ通知を受信する際は、Monacaでアプリのビルドが必要です
    • ビルドの際には、Monacaに開発・本番用証明書(.p12)を設定しますが、こちらの証明書を誤ってアップロードしている場合、プッシュ通知は配信できません
    • Monacaでのビルドについて詳細はiOS アプリのビルド | Monaca Docsをご参照ください
  • 上記以外に、ドキュメントと異なる手順を実施している箇所がある

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ