QED

私はこの世界について驚くべき真理を発見した。だが、それを記すにはこのブログは狭すぎる。

Phonegap BuildでAPNS(プッシュ通知)を送るための証明書設定

Adobe Phonegap BuildでAPNS(プッシュ通知)を送るための証明書設定について、自分用のメモ

 

■1.CSR(公開鍵)の生成

キーチェーンアクセスを開き、メニューの
キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求
を選択
・メールアドレス → 自分のアドレス
・名前 → 適当な名前
・CAのアドレス → 空白
・ディスクに保存
として、CSRを作成&保存
(cert_production.p12とする★)


■2.秘密鍵の書き出し

キーチェーンアクセスの「鍵」から、今作ったCSRに対応する秘密鍵を「書き出す」
(pushkey.p12とする)


■3.App IDの追加

iOS Dev Centerにアクセスし
Identifiers > App IDs から、新しいApp IDを追加する
・Name → 適当な名前
・Explicit App ID → アプリのIDを指定
・App Services → Push Notificationsにチェック
として、App IDを登録。


SSL証明書は1年で切れるので、切れた場合は、以下の手順4~5をもう一度行う


■4.プッシュ通知の有効化

App IDsの一覧に登録したApp IDが表示されるはず。この時点では、Push Notificationsは「Configurable」になっているはず。
「Edit」を押して編集。
「Push Notifications」の項に行き、「Create Certificate」をクリック
CSRファイルをアップして、SSL証明書を作成


■5.ファイルをpem形式に変換

ターミナルを開き、cerファイルを置いたフォルダに移動

5-1. cerファイルをpem形式に変換
$ openssl x509 -in aps_development.cer -inform der -out appcert.pem

5-2. 秘密鍵(p12ファイル)をpem形式に変換
$ openssl pkcs12 -nocerts -in pushkey.p12 -out pushkey.pem
Enter Import Password: // 秘密鍵を出力したときのパスフレーズを入力
MAC verified OK
Enter PEM pass phrase: // PEMファイル用のパスフレーズを入力
Verifying - Enter PEM pass phrase: // PEMファイル用のパスフレーズをもう一度入力

5-3. 2つのpemファイルを1つにまとめる
$ cat appcert.pem pushkey.pem > ck.pem

このck.pemをサーバーにアップして、APNS-PHPなどのライブラリを使う


■6.プロビジョニング・プロファイルの追加
iOS Dev CenterのProvisioning Profilesからプロビジョニング・プロファイル★★を追加


■7.Phonegap Buildへの設定

Phonegap Buildにアクセスし、iOSのキーを追加する
・title → 適当なタイトル
・certificate(p12) file → cert_production.p12★
・provisioning profile → プロビジョニング・プロファイル★★
として「submit key」をクリック。iPhone Developer証明書を書き出したときに設定したパスフレーズを入力する。

 

参考記事

Apple Push Notification Services in iOS 6 Tutorial: Part 1/2 - Ray Wenderlich