色々躓いたので、メモ。
※Apple Developer ~への登録やgoogleアカウントの登録は終わっていることが前提
何がしたいか
iOSアプリでFirebaseを利用してPUSH通知を受信できるようにしたい
どうしたか
- 基本的にはこの記事に従った。この記事を早く見つけていればもっと早く。。。悔やむ。
- ただし、初級者には所どころ理解が追い付かない箇所があったので、その部分を書く
APNs証明書の登録
記事では、公式を示してくれた。
私は今回、iOSアプリの配布にtestFlightを利用したため、プロビジョニングファイルは使わなかった。
なので、Firebaseには、APNs認証キーの登録だけを行うだけで良かった。アプリIDは登録時に必要だったので作成が必須。
(プロビジョニングファイルを登録していないと、PUSH通知送信の際、FCMトークンを指定しての送信ができない。プロビジョニングファイルに端末のトークンが入っていて、それを利用してPUSH通知を送信するためだと思う。なので、最後のところでも書くがテストはユーザーセグメントで行った)
2017/11/27追記
APNs認証書をFirebaseに登録する方法が分からないという意見があったので、記載しておく。
1. Firebase Consoleへ移動する
2. 画面左側のメニューの「Project Overview」の横に表示されている歯車をクリックする。表示されるサブメニューから「プロジェクトの設定」をクリックする。
3. ページ遷移後、画面上部のタブの「Cloud Messaging」をクリックする。
4. iOSアプリの設定からAPNs認証書の設定ができます。
PUSH通知のパーミッション取得
ここからがコードだったのだが、PUSH通知について知っておかないと、理解が追い付かない。
なので、こちらの記事を参照してください。
User Notification Centerについて詳しく記載されていて、理解が進みました。
Firebase設定やデバイストークン取得
ここもパーミッション取得の時の記事を参考にすると分かりやすい。
ただし、以下の箇所は基本的に従った記事が分かりやすかった。
extension AppDelegate : UNUserNotificationCenterDelegate
これをコーディングしていないと、フォアグラウンド(アプリを画面に表示した状態)でPUSH通知を受信できない(正確には画面に通知が表示されない)ので注意が必要。
プッシュ通知の送信
APNs証明書の登録でプロビジョニングファイルをfirebaseに登録した人は「3.FCMトークンを指定」で送信可能(?)。
TestFlightでテスト用に配布しているときは、1.ユーザーセグメントを利用すると良いのではないかと思います。
終わりに
どちらの記事もとても参考になりました。
swiftマスター・職人とは言わずとも、「swiftも使えるよー」くらいは言えるように早くなりたい。