プッシュ通知
Push通知
証明書
NCMB
AppleDeveloperProgram

プッシュ通知に必要な証明書の作り方2018

※2018年4月3日現在、動作確認の実施とリニューアルしました :v_tone2:

概要

  • アプリをを作るとき「プッシュ通知機能があったらいいな!」と思いませんか?でもどうやったら良いんだろ?と思う方も多いはず!そこで、今回は必要な開発用証明書周りに話を書いてみました^^*
  • このQiita記事で必要な証明書類の作成ができます。続編Qiita記事「Swiftでプッシュ通知を送ろう!」で実際のアプリにプッシュ通知を組み込みまで試せます。
  • 続編使用しているプッシュ通知ASPサービスには ニフクラ mobile backend を使っています。Basicプランなら無料 で使えますので、気軽に使ってみてください。

プッシュ通知の仕組み

131.png

  • プッシュ通知を送るにはAPNsと連携、さらにサーバーが必要です

  • アプリ側からプッシュ通知の許可をAPNsに送って、デバイストークンを発行します

  • 発行されたデバイストークンを元にサーバーからプッシュ通知の依頼を受けたAPNsがアプリにメッセージを届けます

準備するもの

※使用した環境も記載していますが、それ以下でも動きます

  • Mac OS X 10.10(Yosemite)
  • Xcode7以上
    • Ver. 7.2.1で動作確認しています
  • iPhone
    • Xcodeのバージョンと対応するバージョンにする必要があります
    • iPhone6(Ver. 9.2.1)で動作確認しています
    • PC接続用にUSBケーブルが必要です
  • Apple Developer Programの登録(有償:$99/年)
    • 証明書取得の内容には必須となります

作成するものと順序

プッシュ通知を送るために作成するもの・しておくことは以下の7つあります

  1. CSRファイルの作成     ※初回作成すれば後は同じものを使いますので改めて作成不要です
  2. 開発用証明書(.cer)の作成   ※初回作成すれば後は同じものを使いますので改めて作成不要です
  3. AppIDの作成
  4. 端末の登録
  5. プロビショニングプロファイルの作成
  6. APNs用証明書(.cer)の作成
  7. APNs用証明書(.p12)の作成

それぞれ以下の関係で参照されています
132.png

※サーバーにはニフクラ mobile backend (無料)を使っています

作成方法

1. CSRファイルの作成  

※初回作成すれば後は同じものを使いますので改めて作成不要です

  • キーチェーンアクセスを開きます
  • 「キーチェーンアクセス」>「証明書アシスタント」>「認証局に証明書を要求」をクリックします
  • 「ユーザーのメールアドレス」を入力します
    (「通称」はそのまま、「CAのメールアドレス」は空欄でOK)
  • 「要求の処理」は「ディスクに保存」を選択し「鍵ペア情報を設定」にチェックを入れます
  • 「続ける」をクリックします

APNs_02.PNG

  • 保存先の選択が出るので任意の場所を選択し「保存」をクリックします
  • 「鍵ペア情報」画面を確認して「続ける」をクリックします
  • 「設定結果」画面が出るので「完了」をクリックします

APNs_03.PNG

2. 開発用証明書(.cer)の作成

※初回作成すれば後は同じものを使いますので改めて作成不要です

  • Apple Developer Program にログインします
  • 「Certificates, Identifiers & Profiles」をクリックします

APNs_04.PNG

  • 「Certificates」>「All」をクリックし、右上の「 + 」をクリックします
  • 「Add iOS Certificate」画面が表示されるので設定していきます
  • 「iOS App Development」にチェックをいれ、下の方の「Continue」をクリックします
  • 次の画面も「Continue」をクリックして進みます

APNs_05.PNG

  • 1. で作成した「CSRファイルの作成」を選択し、「Continue」をクリックします

APNs_06.PNG

  • 開発者用証明書が作成されるので、「Download」をクリックして書き出しておきます
  • ダウンロードが終わったら「Done」をクリックします

APNs_07.PNG

  • 開発用証明書(.cer)の作成は完了です

3. App ID の作成

  • Apple Developer Programのメンバーセンターにログインして、「Certificates, Identifiers & Profiles」をクリックします(※2.の画像参照)
  • 「Identifiers」の「App IDs」をクリックして、右上の「+」をクリックします
  • 上から順に設定していきます
  • まず「App ID Description」の「Name」にアプリの概要を記入します
  • 次に「App ID Suffix」では「Explicit App ID」を選択し、「Bundle ID」を入力します
    • 「Wildcard App ID」ではプッシュ通知が利用できないので注意!
    • 「Bundle ID」はアプリ側で同じものを設定しますので必ず控えておきましょう

APNs_08.PNG

  • 最後に「App Services」では「Push Notifications」にチェックを入れます
    • これを忘れるとプッシュ通知が利用できないので注意!
  • 「Continue」をクリックします

APNs_09.PNG

  • 「Push Notifications」がConfigurableになっていることを確認しましょう
  • 「Register」をクリックし次の画面で「Done」をクリックします

APNs_10.PNG

  • これでApp ID 作成は完了です

4. 端末の登録

  • 「Devices」>「All」をクリックして、右上の「+」をクリックします
  • 「Register Device」を選択し、端末の「Name」と「UUID」を入力します

APNs_11.PNG

  • 端末のUUIDはXcodeを使うと確認し易いです
    • Mac に端末を接続し、Xcodeを起動します
    • 「Window」>「Devices and Simulators」をクリックします
    • 「identifier」としてUUIDが確認できます

APNs_12.PNG

  • 記入できたら「Continue」をクリックします
  • 次の画面で端末情報を確認して「Register」をクリックします
  • 更に次の画面で「Done」をクリックすると端末登録は完了です

5. プロビショニングプロファイルの作成

  • 「Provisioning Profiles」>「All」をクリックして、右上の「+」をクリックします
  • 利用する App ID、開発用証明書、端末をそれぞれ紐付けていきます
  • 「Development」から「iOS App Development」を選択し、「Continue」をクリックします

APNs_13.PNG

  • 3. で作成した App ID を選択し、「Continue」をクリックします
  • 2. で作成した(あるいは既存の) 開発用証明書 を選択し、「Continue」をクリックします

APNs_14.PNG

  • 4. で登録した(あるいは既存の)端末を選択し、「Continue」をクリックします
  • 最後に「Profile Name」にファイル名入力します
  • 紐付けを確認し「Continue」をクリックします

APNs_15.PNG

  • プロビショニングプロファイルがが作成されるので、「Download」をクリックして書き出しておきます
  • ダウンロードが終わったら「Done」をクリックします

APNs_16.PNG

  • プロビショニングプロファイルの作成は完了です

6. APNs用証明書(.cer)の作成

  • 「Certificates」>「All」をクリックして、右上の「+」をクリックします
  • 2.で開発用証明書を作成したときとは異なり、「Development」の「Apple Push Notification service SSL (Sandbox)」を選択します
  • 「Continue」をクリックします

APNs_17.PNG

  • 3.で作成した App ID を選択し、「Continue」をクリックします
  • 次の画面は「Continue」をクリックして進みます

APNs_18.PNG

  • 1.で作成した(あるいは既存の)CSRファイルを選択し、「Continue」をクリックします
  • APNs用証明書(.cer) が作成されるので、「Download」をクリックして書き出しておきます
  • ダウンロードが終わったら「Done」をクリックします

APNs_19.PNG

  • APNs用証明書(.cer) の作成は完了です

7. APNs用証明書(.p12) の作成

  • 6.で作成した「APNs用証明書(.cer)」をダブルクリックしてキーチェーンアクセスを開きます
  • APNs用証明書(.cer) の左にある三角マークをクリックして開きます
    • APNs用証明書(.cer) ファイルには鍵がセットされています

APNs_20.PNG

  • APNs用証明書(.p12) を書き出すには、開いた状態で 鍵ではなく証明書の上で右クリック をして「~を書き出す…」をクリックします

APNs_21.PNG

  • ファイル名「名前」と保存先「場所」を指定して「保存」をクリックします
  • パスワードを求められますが、 何も入力しない で「OK」をクリックします

APNs_22.PNG

※この後、システム側にパスワードを求められる場合があります。対応してください。

  • APNs用証明書(.p12) が書き出されます
  • APNs用証明書(.p12) 作成は完了です

これですべて必要なファイルが作成できました

終わりに

 証明書の作成は、少し間違えるだけで上手く行かない可能性が多くあります。この方法で証明書を作成したのに上手くいかないのだけど…という方は下記内容をもう一度確認してみてください!

  • 書類の作成順序を間違えている
    • 最初に図で説明した通り、書類には参照の関係があります。上手く参照されていない可能性があります
  • 途中で作成した書類を編集した
    • 正しく作っていると思っていて、これで失敗していたことがありましたので注意!
  • 開発用証明書が複数作成されている
    • 混在してしまうとどちらを使用しているのかわからなくなってしまい上手くいかないことがあるようです。
  • CSRファイルが複数作成されている
    • 混在してしまうとどちらを使用しているのかわからなくなってしまい上手くいかないことがあるようです。
  • AppIDを作成時に「Push Notifications」にチェックを入れ忘れている
    • 上にも書きましたが意外とあるあるです
  • 他にも可能性は…
    • 随時更新します

参考

 実際にプッシュ通知を実装したい!という方は続けて「Swiftでプッシュ通知を送ろう!」を見て取り組んでみてください!アプリに組み込むこと自体はそんなに難しくありません★☆