QED

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

Phonegap BuildでAPNSを実現するまでの登録手順(開発環境)

Adobeが提供するPhonegap Buildを使って

 Appleのプッシュ通知(Apple Push Notification Service、APNS)を実現するまでの手順を備忘録としてメモ。

 

プログラム的な実装ではなく、主にDeveloper Centerへの登録や、証明書の取得などがメインになります。

 

なお iOS Developer Programの登録は完了しているものとし、開発者登録やデモ用デバイスの登録などは終わっているものとします。

 

今回は Development(開発用)の登録方法です。本番環境(App Store配布用)についてはこちら。

 

 

1.ローカル上にて証明書の作成

1-1.証明書の作成

キーチェーンアクセス(アプリケーション>ユーティリティ内)を開く

上部メニューから

キーチェーンアクセス>証明書アシスタント>認証局に証明書を要求

f:id:qed1:20131216144030p:plain

 

☆必要な情報を入力

f:id:qed1:20131216144106p:plain

・ユーザのメールアドレス→ Developer Programに登録したメールアドレス。と思いきや、どんなメールでもいいっぽい。

・通称 → あとから探しやすい名前にしておく

・CAのメールアドレス → 空白

・「ディスクに保存」を選択

・鍵ペア情報を指定はチェックしない

 

「続ける」をクリックすると保存先を聞かれるので分かりやすい場所に保存する。

 

「証明書要求がディスク上に作成されました」と表示されて

CSRファイル(拡張子が.certSigningRequestのファイル )が作成される。

 

1-2.秘密鍵p12ファイルの生成

キーチェーンアクセスの「鍵」を選択すると、先ほどの「秘密鍵」が追加されているはず。

 

この「秘密鍵」をクリックして「書き出す」

パスワードを設定する。(Macのパスワードではなく、この鍵専用のパスワード)

 

f:id:qed1:20131216144130p:plain

 

拡張子が「.p12」のファイルが生成される。

 

2.Developer CenterにてSSL証明書(.cerファイル)の作成

2-1.App IDの設定

Developer Centerから Identifiers > App IDsで新たに追加

この際、APNSを使う場合はワイルドカード込みのApp IDは使えない。

「Push Notifications」にもチェックを入れておく。

 

2-2.SSL証明書(.cerファイル)の作成

App IDsの一覧に、今、追加したアプリが表示されているはず。

この時点では「Push Notification」は Configurableになっている。

f:id:qed1:20131216144205p:plain

「Edit」をクリック。

 

「Push Notifications」の「Development SSL Certificate」にある「Create Certificate」ボタンをクリック

f:id:qed1:20131216144224p:plain

 

さっき作った証明書の作り方が説明される。

すでに作っているので「Continue」をクリック。

 

先ほど作ったCSRファイル(拡張子が.certSigningRequestのファイル)をアップロードする。

f:id:qed1:20131216144247p:plain

 

aps_development.cerファイルが生成されるのでダウンロードする。

f:id:qed1:20131216144434p:plain

 

※.cerファイルの有効期限は、Development、Production共に1年。

期限が切れるまでに同じ手順(.cerファイルの生成つまり2-2.の手順だけでよい)を繰り返して更新すること。

 

 

3.PEMファイルの作成

証明書(.cerファイル)と秘密鍵(.p12ファイル)を一つのファイルにまとめたPEMファイルを作成する。

PHPで使いやすい形式らしい。PHP以外の言語の場合は別の対応が必要かも。

 

アプリケーション>ユーティリティ>ターミナル を開く

 

ファイルが置いてあるディレクトリに移動(Desktopとする)

 

$ cd ~/Desktop/

 

.cerファイルをPEMファイルに変換

$ openssl x509 -in aps_development.cer -inform der -out clubmAPNScert.pem

 

.p12ファイルをPEMファイルに変換

$ openssl pkcs12 -nocerts -out clubmAPNSkey.pem -in clubmAPNSkey.p12(※p12ファイルの名前)
Enter Import Password: (p12ファイル生成時に登録したパスワード)
MAC verified OK
Enter PEM pass phrase: (PEMファイル生成に利用する新たなパスワード)
Verifying - Enter PEM pass phrase: (確認用に、PEMファイル生成パスワードを再入力)

 

2つのPEMファイルを統合

$ cat clubmAPNScert.pem clubmAPNSkey.pem > clubmAPNS.pem

 

 

4.Developer CenterにてProvisioning Profileの作成

Developer Centerから、Provisioning Profileを追加(開発用と公開用で2種類ある)

開発用の場合は「iOS App Development」を選択。

f:id:qed1:20131216144513p:plain

上記で設定したAppIDと実機テスト用の端末を指定する

 

5.Phonegap Buildでビルドするための.p12ファイルを作成する

キーチェーンアクセスの「証明書」から

iPhone Developerの証明書を選択して「書き出す」

 

※このファイルは全てのアプリに共通(上で作った.p12ファイルとごっちゃにならないよう注意)

 

このときパスワードを聞かれる。このパスワードをPhonegap Buildでビルドする時にも使用する。

 

6.Phonegap Buildに .p12ファイルと Provisioning Profileを登録

Phonegap Buildのアプリページに移動し、iOSの「No key selected」という部分を選択。

「Add key」を選択して、先ほど5で作成した.p12ファイルと Provisioning Profile(拡張子が.mobileprovisionのファイル)を登録する。

titleには適当な名前を入れておく。(developmentなど)

f:id:qed1:20131216152430p:plain

 

 

ビルドするときには、鍵のマークをクリックして

p12ファイル生成時に登録したパスワードを入力して解除した上で「Rebuild」をクリックする。

f:id:qed1:20131216152448p:plain

 

7.実機テスト

ビルドした.ipaファイルをダウンロード。

 

テスト用の実機(Developer CenterにUDIDを登録したもの)をつないだ状態で

ダウンロードした.ipaファイルをクリックするとiTunesが起動。

 

「App」を選択して「インストール」をクリック。

f:id:qed1:20131216152609p:plain

右上の「完了」ボタンでインストールが始まる。