Firebase Cloud Messaging でpush通知をしていたのだが俺はもうダメかもしれない
APNs証明書を設定していたが証明書の期限切れが近づいてきた。証明書どうやって作ったんだっけ…?
と古い記憶を掘り起こしながらググってたら「APNs 認証キー使え」という情報に行き当たったので調べた。
プッシュ通知送信時にAPNs接続の認証が必要。元々は証明書を使う方式だったがごく最近から認証トークンを使う方式が使えるようになった。
手順
画面構成はすぐ変わるので参考までに。
※ Apple Developer Program の契約云々の話は各位ググってください。今回の話の主題ではない。
Apple Developer Member Center 側の設定
- Apple Developer Member Center にアクセスし、ログイン。
- Membership の Team ID を何処かに記録しておく。
- Certificates, Identifiers & Profiles にアクセスし、Keys > Allを開く。
- 右上の「+」をクリック。
- Nameにわかり易い名前を。「Key Services」からAPNsにチェックを入れる。
- Continue で継続し完了させる。
- 完了画面で p8 ファイルがダウンロードできるのでダウンロードする。このタイミングを逃すと他でファイルダウンロード出来ない。
- Key ID を何処かに記録しておく。
Firebase Console側の設定
- Firebase Console にアクセスし、ログイン
- 対象プロジェクト選択。Project Overview 横の歯車マークから「プロジェクトの設定」を選択。
- クラウドメッセージングを選択
- 「APNs 認証キー」の「アップロード」を選択。
- APNs 認証キーに上記でダウンロードした .p8 ファイルをアップロード。キーIDは上記で記録したKey ID。「App ID Prefix」は上記で記録したTeam IDを入力。
- アップロードボタンをクリック。
- APNs 認証キーをアップロードするとAPNs 証明書が無効化され認証キーが有効になる。
雑感、他
- 証明書は無効化される。削除も出来なくなるので放置する。
- push通知の実装などは別途ググれ。
- Firebaseを使うことでFirebase側の設定変更のみでアプリの改修などは不要。その点は直接APNsと通信するようなプログラム書くより便利だなぁと思う。