#はじめに
私はプッシュ通知のためのMBaaS(mobile backend as a Service)はFirebaseしか使った事がありません。。
なので、基本的にこの記事で書く内容は、Firebase Cloud Messagingを使う事を前提としています!
あらかじめご了承を
#iOSでプッシュ通知を使うために必要なファイルは2種類ある
iOSアプリのPush通知を実現するには、**APNs(Apple Push Notification Service)**と連携する必要があります。
で、APNsを利用する際には、認証のために証明書やトークンが必要です。
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server
APNsを利用する際に必要な認証方法が実は2種類あるため、初めて調べた人は非常に混乱するのではないだろか??
2種類の認証方法というのがタイトルにもある「p12形式の証明書」と「p8形式の鍵」の事です。
#「p12形式の証明書」と「p8形式の鍵」の違い
それぞれの特徴をまとめてみました!
##p12
・ファイル取得までの道のりが長くて複雑
・有効期限は1年で、毎年更新する必要がある
・App ID単位で管理ができる
・開発環境・本番環境と区別ができる
・古いやり方
・何度でもダウンロードできる
##p8
・ファイル取得までの道のりが短くて簡単
・有効期限は無期限
・App ID単位で管理ができない(Apple IDが保有している全てのアプリで使える)
・開発環境・本番環境と区別がない
・新しいやり方(Firebaseではp8が推奨されている)
・同じkeyは1度しかダウンロードできない
・Apple IDのApple Developer Programに対して、2つまでしか認証キーが発行できない
###補足
p8 keyは「1度しかダウンロードできない」となっていますが、これは「1度失ったら2度とプッシュ通知を使えない」というわけではありません。
Remember to keep the key file safely as you can only download it once, if you lost the key file, you will need to revoke and it and register a new one.
https://fluffy.es/p8-push-notification/
ダウンロードできるのは1回だけなので、キーファイルを安全に保管することを忘れないでください。キーファイルを紛失した場合は、キーファイルを取り消して新しいファイルを登録する必要があります。
同じkeyをダウンロードできるのが1回だけ、という意味で、もし無くしたら現在有効になっているp8 keyを取り消して**(Revoke)**、再び新しいものを作成してダウンロードすればOKという事です!
https://firebase.google.com/docs/cloud-messaging/ios/certs
#「p12形式の証明書」の取得方法
プッシュ通知に必要な証明書の作り方2020
#「p8形式の鍵」の取得方法
使われてる画像は古いですが、参考になるかと
お手軽firebaseプッシュ通知証明書作成メモ
英語でもいいならこちらが新しい
.p8 Key File For Push Notification
#最後に
「どっちが良いか?」を一概に決めることはできず、どちらも一長一短という感じ。。。
ただ、p8が新しいやり方なので、時代が進むとそっちが主流になりそうではある。
もしp8 keyを紛失したら?については下記を参考に
iOS - What happens I lost my APNs Key file?
軽く要約しますと
① Apple Developer Member Centerで新しいp8 keyを作成(もし既に2つ認証keyを作成していた場合、無くした方をRevokeする)
②Firebaseなどのサーバー側で無くしたp8 keyを削除して、新しいp8 keyを登録