LoginSignup
9
12

More than 5 years have passed since last update.

Firebase Cloud MessagingをiOSアプリで利用するための設定 (2017)

Posted at

はじめに

iOSアプリケーションでのFirebase Cloud MessagingはAndroidの利用と比べて設定手順が多く、手順を一つでも間違うと通知が来ないという問題に直面します。この問題にあたった場合はほとんどの部分が自分で作成していない部分となるためデバッグができないため、設定ミスを起こさないようにログを残しておきます。

FCM(Firebase Cloud Messaging)とAPN(Apple Push Notifications)

まず設定の前にFCMとAPNsの関係を整理しておきたいと思います。My Serverからの通知はFirebaseを通してAPNに通知され、APNから各iPhone端末に通知されます。Firebaseを利用しなくてもAPNを利用すればサーバーからのPush通知は可能ですが、iOS/Androidの両方に通知を行うためにFirebaseを利用している方が多いかと思います。

注意する点としては、APNにはsandboxとproductionの両方があることです。sandboxは開発用で開発PCと開発端末での利用に用います。それ以外はTestFlightも含めてproductionを利用しないと通知が届きませんので注意が必要です。

スクリーンショット 2017-03-05 16.08.25.png

FirebaseからAPNへの通知にはsandbox/productionのSSLの証明書の設定が必要になります。単純にサンプルを動作させるだけであればsandboxで十分なのですが、正式なアプリケーションで後々必要な場合は、一気にsandboxとproductionの両方を設定してしまいましょう。

CSRの作成

APNの証明書はApple Developers Programで作成する必要があります。証明書を作成要求のためにCSR(certificate signing request)を作成しましょう。

sandboxとproductionのCSRを共有することも可能だと思いますが、ここは正しく、それぞれのCSRを作成しましょう。

開発用Macでキーチェーンアクセスを起動します。認証局に証明書を要求を選択。

スクリーンショット 2017-03-05 16.24.20.png

メールアドレスを入力。ディスクに保存、鍵ペア情報の指定を選択
スクリーンショット 2017-03-05 16.25.58.png
スクリーンショット 2017-03-05 16.27.05.png

作成したCSRファイルを保存しておいて下さい。同じ手順をもう一度行い、Production用のCSRも作成して下さい。

APN証明書の作成

App IDを取得します。。App ID取得時に以下の"Push Notifications"を選択して下さい。(あとから編集することも可能です)

スクリーンショット 2017-03-05 16.47.56.png

開発用(sandbox)のAPN証明書の作成

スクリーンショット 2017-03-05 16.50.44.png
スクリーンショット 2017-03-05 16.50.57.png
スクリーンショット 2017-03-05 16.51.15.png

先ほど作成した開発用のCSRを選択します。

スクリーンショット 2017-03-05 16.51.56.png

スクリーンショット 2017-03-05 16.52.10.png

スクリーンショット 2017-03-05 16.52.20.png

ダウンロードするとaps_development.cerが作成されます。

製品用(production)のAPN証明書の作成

ほぼ同じ手順ですが、証明書の種類の選択だけ異なります。

スクリーンショット 2017-03-05 16.59.32.png

スクリーンショット 2017-03-05 16.59.55.png

スクリーンショット 2017-03-05 17.00.34.png

スクリーンショット 2017-03-05 17.00.42.png

ダウンロードするとaps.cerというファイルが作成されます。

先ほど作成したApp IDを選択すると"Push Notifications"が両方Enabledになっていれば正しく設定されています。

スクリーンショット 2017-03-05 17.02.21.png

秘密鍵の取り出し

Firebaseへの設定には、それぞれの証明書の秘密鍵を設定する必要があります。それぞれの証明書の秘密鍵をキーチェーンアクセスを用いて取り出します。

aps_development.cer、aps.cerの両方のファイルをダブルクリックします。そうするとキーチェーンに保存されます。

鍵を書き出します

スクリーンショット 2017-03-05 17.12.05.png

パスワード設定します
スクリーンショット 2017-03-05 17.10.23.png

XXX.p12ファイルが作成されます。同じようにproduction用の秘密鍵も取り出します。

スクリーンショット 2017-03-05 17.10.44.png
スクリーンショット 2017-03-05 17.11.30.png

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12