Help us understand the problem. What is going on with this article?

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

2020/02/19 Updeate 完了しました🎉
手順を最新の画像と共に紹介していますので、参考にされてください:thumbsup:

概要

  • アプリを作るとき「プッシュ通知機能があったらいいな!」と思いませんか?でもどうやったら良いんだろ?と思う方も多いはず!そこで、今回は必要な開発用証明書周りに話を書いてみました^^*
  • この Qiita 記事で必要な証明書類の作成ができます
    • ただしリリース用ではなく開発用の作成手順を書かせていただいています。リリース用も同じような手順でできますのでまずは開発用でチャレンジしてみてください。
  • 続編 Qiita 記事「Swiftでプッシュ通知を送ろう!」で実際のアプリにプッシュ通知を組み込みまで試せます
    • :warning:こちらの記事少し古いです。。更新できていなくてごめんなさい。最新は本家ドキュメントをご覧ください:pray:
  • 続編使用しているプッシュ通知 ASP サービスには ニフクラ mobile backend を使っています。Basicプランなら 無料 で使えますので、気軽に使ってみてください。

プッシュ通知の仕組み

  • プッシュ通知を送るにはAPNsと連携、さらにサーバーが必要です
  • サーバーを用意しなければいけないの??…じゃあ無理だ、、という方に朗報!! ニフクラ mobile backend でサーバーの部分は解決!詳しい使い方は Swiftでプッシュ通知を送ろう! をご覧ください
    • :warning:前にも書きましたがこちらの記事少し古いです。。更新できていなくてごめんなさい。最新は本家ドキュメントをご覧ください:pray:
  • アプリ側からプッシュ通知の許可をAPNsに送って、デバイストークンを発行します
  • 発行されたデバイストークンを元にサーバーからプッシュ通知の依頼を受けたAPNsがアプリにメッセージを届けます

プッシュ通知を送るために準備するもの

  • Mac OS 10.13.6(High Sierra)以上
  • Xcode10以上
    • Ver. 10.1で動作確認しています
  • iPhone
    • Xcodeのバージョンと対応するバージョンにする必要があります
    • PC接続用にUSBケーブルが必要です
  • Apple Developer Programの登録(:warning:有償:11,800円/年)
    • 証明書取得の内容には必須となります

作成するものと順序

プッシュ通知を送るために作成するもの・しておくことは以下の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」をクリックし、「Certificates」の隣にある「+」をクリックします
  • 「Create a New Certificate」画面が表示されるので設定していきます
  • 「iOS App Development」にチェックをいれ、右上の方の「Continue」をクリックします

APNs_05.PNG

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

APNs_06.PNG

  • 開発者用証明書が作成されるので、「Download」をクリックして書き出しておきます

APNs_07.PNG

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

3. App ID の作成

  • 2.の作業がスキップだった場合は、Apple Developer Programにログインして、「Certificates, Identifiers & Profiles」をクリックします(※2.の画像参照)

  • 「Identifiers」の右の「+」をクリックします

  • 「Register a New Identifier」が表示されるので「App IDs」にチェックをいれ、右上の方の「Continue」をクリックします

3.1.png

  • 「Description」にアプリの概要を記入します 例) TestPushApp
  • 「Bundle ID」では「Explicit」を選択し、「Bundle ID」を入力します
    • 「Wildcard」を選択するとプッシュ通知が利用できないので注意!
    • 「Bundle ID」は アプリ側で同じものを設定します ので必ず控えておきましょう!

3.2.png

  • 下にスクロールして「Capabilities」の「Push Notifications」にチェックを入れます
    • これを忘れるとプッシュ通知が利用できないので注意!
  • 「Continue」をクリックします

APNs_09.PNG

  • 確認画面が表示されるので「Push Notifications」にチェックが入っている事を確認して「Register」をクリックします

APNs_10.PNG

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

4. 端末の登録

  • 「Devices」をクリックして、「Devices」の隣にある「+」をクリックします
  • 「Platform」は「iOS, tvOS, WatchOS」に選択します
  • 端末の「Device Name」と「Device ID(UDID)」を入力します

APNs_11.PNG

  • 「Device Name」は自由に設定できます
  • 「Device ID(UDID)」はXcodeを使うと確認し易いです
    • Mac に端末を接続し、Xcodeを起動します
    • 「Window」>「Devices and Simulators」をクリックします
    • 「identifier」としてUDIDが確認できます

APNs_12.PNG

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

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

  • 「Profiles」をクリックして、「Profiles」の隣にある「+」をクリックします
  • 「Development」の「iOS App Development」を選択し、「Continue」をクリックします

スクリーンショット 2020-02-19 14.49.29.png

  • 利用する App ID、開発用証明書、端末をそれぞれ紐付けていきます
  • 3.で作成したApp IDを選択し、「Continue」をクリックします

APNs_13.PNG

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

5.2.png

  • 4.で登録した(あるいは既存の)端末を選択し、「Continue」をクリックします

5_3.png

  • 最後に「Provisioning Profile Name」にファイル名入力します 例) TestPushApp Provisioning Profiles
  • 紐付けを確認し「Generate」をクリックします

5_4.png

  • プロビショニングプロファイルがが作成されるので、「Download」をクリックして書き出しておきます

5_5.png

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

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

  • 「Certificates」をクリックして、「Certificates」の隣にある「+」をクリックします
  • 2.で開発用証明書を作成したときとは異なり、下にスクロールし、「Service」の「Apple Push Notification service SSL (Sandbox)」をチェックに入れます
  • 「Continue」をクリックします

6.1.png

  • 3.で作成した App ID を選択し、「Continue」をクリックします

6_2.png

  • 1.で作成した(あるいは既存の)CSRファイルを選択し、「Continue」をクリックします

6.3.png

  • APNs用証明書(.cer) が作成されるので、「Download」をクリックして書き出しておきます

6_4.png

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

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

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

7-1.png

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

7-2.png

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

APNs_22.PNG

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

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

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

終わりに

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

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

参考

 実際にプッシュ通知を実装したい!という方は続けて「Swiftでプッシュ通知を送ろう!」を見て取り組んでみてください!アプリに組み込むこと自体はそんなに難しくありません★☆
:warning:前にも書きましたがこちらの記事少し古いです。。更新できていなくてごめんなさい。最新は本家ドキュメントをご覧ください:pray:

natsumo
ニフクラ mobile backend の使い方をまとめています。
https://github.com/natsumo/
fjct
クラウド・IoT 関連サービスを開発・提供している企業です。(こちらは、富士通クラウドテクノロジーズの有志にて運営しております。)
https://fjct.fujitsu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした