更新手順なので、既に初期設定は終わっている想定。
Apple Developerでcerを発行
Apple Developer Programにログインする。
左メニューの「Certificates, Identifiers & Profiles」をクリックする。
Production→Apple Push service SSL (Sandbox & Production)を選択する。
CSRを作れと言われるので、言われた通りにCSRファイルを作成する。
Mac上で「キーチェーンアクセス」アプリを起動する。
キーチェーンアクセス→証明書アシスタント→認証局に証明書を要求…
ユーザーのメールアドレスと通称に何か入れる。通称は英語にしておくと問題が起きにくい。
「ディスクに保存」を選択しておく。
「鍵ペア情報を指定」はチェックなし。
そして「続ける」
Apple Developerに戻って、先程作成したCSRファイルをアップロード。
すると.cerファイル作ったよ!と言われるのでダウンロードする。
.p12ファイルを作成
ダウンロードした.cerファイルをダブルクリックする。
すると「キーチェーンアクセス」アプリが起動して、先程CSRを作成した際に入れた「通称」の鍵と証明書がペアになっている。
証明書を右クリックして、右クリックメニューから「”Apple Push Services: hogefuga”を書き出す…」を選択する。
.p12になっているのでそのまま保存する。
ちなみにファイル名は英語にしておかないと後でエラーになる事がある。
保存する際にパスワードを聞かれるので、適当に設定する。
適当と言っても本当に適当に設定して忘れてしまってはいけない。
AWS SNSの設定の更新
AWS管理画面に入ってSimple Notification Serviceに移動する。
左メニューから「Applications」に遷移する。
Platform application actions→Update credentialsを選択する。
先程生成した.p12ファイルと.p12ファイル生成時に使ったパスワードを入力する。
ここで.p12ファイルが英語でなかったり通称が英語でなかったりすると、謎エラーが出て作り直しが必要な事がある。
テスト
ここのsnsmobilepush.zipをダウンロードして解凍する。
AppleMobilePushApp/iOS 8/AmazonMobilePush.xcodeproj
をダブルクリックして開く。
警告が出るけど開く。
GeneralタブのIdentity→Bundle Identifierを証明書を発行したApp IDに変更する。
Signingを合わせて変更する。ここで「!」マークが出ていたらダメ。
CapabilitiesタブからPush NotificationsをONにしておく。
適当にテスト登録している端末にインストールして起動する。
するとDevice Token = <examp1e 29z6j5c4 df46f809 505189c4 c83fjcgf 7f6257e9 8542d2jt 3395kj73>
みたいなログが出る。
このデバイストークンをAWS SNSに登録する。
Create platform endpoint→Manually add a single tokenで先程のデバイストークンを入力して「Add endpoint」。
その後、Filterで検索して、「Publish to endpoint」。
「Message format」を「JSON」にして、「JSON message generator」をクリック。
するとこんな感じの画面が出てくるので、テストっぽいメッセージを入れて「Generate JSON」。ここは日本語OK。
こんな感じになるので、右下から「Publish message」する。
するとテスト端末のテストアプリにPush通知が届く。
所感
何かもうちょっと単純だった気がしていたけど、そんな事は無かった…