アプリ開発日誌
2017.09.29
Apple Push Notification Authentication Keyを発行しよう
サーバー開発担当の木下です。
手持ちのiPhoneとiPadをiOS 11にアップデートしました。コントロールセンターでWiFiを切ると、ネットワークに接続しないだけでWiFi自体は有効になっているとう仕様を知ってびっくりしています。ちょっと前まで、外出時はWiFiを切るというのがスマホのバッテリー消費を軽減するための定番だと思っていたのですが、色々変わってきているということでしょうか・・・
さて今回は、時々お問い合わせをいただく「iOSのプッシュ証明書の発行方法」です。
APNsの証明書が変わりました
以前に書いたエントリ(Golangで「プロバイダー認証トークン」を生成して、APNsにプッシュを送ろう)で触れたとおり、プッシュ通知に使用する証明書の種類が変わりました。以前のものは「Apple Push Notification Service SSL」、新しいものは「Apple Push Notification Authentication Key」です。
新しい証明書の特徴として、有効期限がなく、1つ作ればそのデベロッパーアカウントでビルドしたすべてのアプリにプッシュが送れるというメリットがあります。これからアプリを作るという場合は、新しい方を使わない手はないでしょう。
というわけで、発行方法を詳細に見ていきたいと思います。
iOSでプッシュを送るために必要なもの
下記の2つです。
・「Apple Push Notification Authentication Key」の証明書
・AppleデベロッパーアカウントのTeamID
本当はこれの他に「KeyID」(証明書のキーID)も必要なのですが、現状は証明書のファイル名に含まれているようなので、ファイルがあればわかるはずです。
ただ、例えばエンジニアに証明書ファイルを送るときにどうしてもファイル名を変える必要がある場合などは、元のファイル名が何だったのかも伝えてあげると良いでしょう。
証明書を取得する
証明書の発行方法です。この画面はちょくちょくレイアウトが変わるので、もしかしたら手順も多少変わってしまうことがあるかもしれません。
2.左ペインにある「Certificates, IDs & Profiles」をクリックする
5.Key DescriptionのNameを入力する。「push」など適当な名前で良いと思います。
6.Key ServicesのAPNsにチェックをいれる。
7.下部「Continue」ボタンをクリックする。
9.「Download」ボタンをクリックする。ここでダウンロードされる.p8拡張子のファイルが証明書です。
10.下部「Done」ボタンをクリックする。
これで発行完了です。
TeamIDを取得する
1.Apple Developerにログインする (すでにログインしている場合はアカウントのトップページに戻る)
3.「Membership Details」の下にある「Team ID」(10桁の英数字)がTeam IDです。
これでiOSへのプッシュ通知に必要な情報が揃いました!
この辺の仕様は結構ころころ変わります
iOSプッシュの認証に使うのは証明書、Androidプッシュの認証はサーバーキーですが、どちらも細かな仕様とか取得方法とかがコロコロ変わるイメージがあります・・・
改善につながっていることは間違いないですが、もう少しとっつきやすい形になるといいなあと思います。