【iOS】Push通知用証明書とプロビジョニングプロファイルの作成（2021年版） 

#はじめに
スマホで普段何気なく目にしているPush通知。

実はPush通知を利用するためにiOSもAndroidも事前準備が必要です。


テストでもPush通知の確認が必要なことがたくさんありますよね。
お客さんによってはコチラで準備をする必要があります。

そんな時に困らないように、Push通知を利用するために準備しなくてはならないものを書いてみます。

<font color="Red">今回は、ややこしいiOS版の準備について書いてみます。</font> 





#準備するもの
●Mac ※1
●Apple Developer Programの登録(有料です)

※1　Mac OS 10.15以上推奨

#作成の流れ
1.CSRファイルと開発用証明書の作成
2.AppIDの作成
3.プロビジョニングプロファイルの作成
4.APNs用の証明書作成

文字で書くのは簡単ですね(´・ω・`)
では、実際に作成してみましょう。



#CSRファイルと開発用証明書の作成

#####1.キーチェーンアクセスを起動
#####2.画面左上の「キーチェーンアクセス」というメニューから <font color="Red">認証局に証明書を要求</font> を選択

![キャプチャ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/81301eb7-ddbe-d29c-9f7f-1afed894348c.png)




#####3.選択すると「証明書アシスタント」というのが開きます

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/f294d51f-c604-c5ea-a28e-d4d5a3eddaa7.png)

━━━━━━━━━━━━━━
●ユーザのメールアドレス：
ご自身のメアドを入れましょう
●通称：
デフォルトのまま。会社名とかAppleとか入れておきましょう（空欄だとエラーになるかも…）
●CAのメールアドレス：
空欄にしておいてください
●要求の処理：
ディスクに保存を選択
鍵ペア情報にチェック
━━━━━━━━━━━━━━


#####4.続けるを押す

下記のダイアログが表示されますが、デフォルトのまま進めます。
　※保存先を変更したい場合は「場所」を変更する

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/196c4fad-bc1a-cf84-1b4e-903e77d500ee.png)

保存ボタンを押下すると、下記の「鍵ペア」を指定する画面に切り替わります。
コチラもデフォルトのままでOKです。
　※下記画像が恐らくデフォルト

![キャプチャ3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/c2478d79-d4c3-f6cf-3a3d-f2a18444091e.png)


これで「<font color="Red">CSRファイル</font>」という開発用証明書を作成するために必要なファイルが作成できました。

CSRファイルって？
認証局に対して申込した本人です！というのを証明するためのファイル…とでも思ってください(´・ω・`)

さて、次の工程にいきます。

#####5. [Apple Developer Program](https://developer.apple.com/jp/)にログイン
#####6.「Certificates, Identifiers & Profiles」を選択
#####7.「Certificates」を選択
#####8.「＋」ボタンを押して「Create a New Certificate」を確認する

ここまでは簡単ですね。

#####9.「iOS App Development」を選択して右上のContinueを押す
#####10.「Choose File」を押して<font color="Red">「開発用証明書の作成で作成したCSRファイル」</font>を参照する
#####11. 次画面でDownloadボタンを押して「cerファイル」を保存する

これで証明書を作れました！

ダウンロードしたファイルは、あとで使用するので大事に保管しておいてください。


#AppIDの作成

ここが結構山場です(´・ω・`)

#####1. Apple Developer Programのホーム画面に戻る
#####2.「Identifiers」を選択して「＋」ボタンを押す
#####3.「Register a New Identifier」から「AppID」を選択
![キャプチャ5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/ab09d40e-a212-832c-30d0-7290a6e6dcc0.png)

#####4.「APP」を選択
#####5.「Description／<font color="Red">Bundle ID</font>」の指定

![キャプチャ7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/d8ee16e7-a3a5-0029-c4dd-7b9be3066b77.png)


●Description：
アプリの名称？概要？みたいな捉え方で良いかなと。Pushtestとかアプリ名称入れておきましょう。
●Bundle ID：
とても重要です(´・ω・`）
ビルド時にも設定するモノになるので、必ず何を設定したか覚えておきましょう。

#####6.「Capabilities」の中から「<font color="Red">Push Notifications</font>」を探してチェックを入れる

![キャプチャ6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/8609b01e-452c-f806-d535-90a2875cf565.png)
　※デフォルトはチェックが入っていません

これにチェックを入れることで「Push通知を使います！」と設定をしていると思ってください。


作ったあとにやることは？
<font color="Red">「Push Notifications」にチェックがきちんと入っているか確認する。</font>

これ超重要です。。。
私、何度か入れ忘れやらかしてます(´・ω・`)

コレやり直しになると結構めんどくさいので、必ず見直しすることをオススメします。

#プロビジョニングプロファイルの作成

ここまで来たらあと一歩か二歩です:worried:
ほんとめんどくさいですよね...。

#####1. Apple Developer Programのホーム画面に戻る
#####2.「Profiles」を選択して「＋」ボタンを押す
#####3.「Register a New Provisioning Profiles」から「iOS App Development」を選択
![キャプチャ8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/52e9ed18-6a6a-54fe-360e-ae49bc81b075.png)
これですね(´・ω・`)

#####4.「Generate a Provisioning Profile」で「AppID」を指定する

![キャプチャ9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/5ff17661-e6c3-6e6f-c261-6f63a07c3757.png)

選択する際は英語の羅列を見て判断するより、AppID作成時に指定したDescriptionを頼りに選択すると良いです。

#####5.「Generate a Provisioning Profile」で事前に作成しておいた”開発用証明書”を選択
#####6.  Provisioning Profile名を任意に入力して「Generate」を押す
#####7. Downloadして保存しておく

これでプロビジョニングプロファイルの作成も完了！
ダウンロードしたファイルは大事にデスクトップにでも置いておきましょう。

あと一歩です。

#APNs用の証明書作成

#####1. Apple Developer Programのホーム画面に戻る
#####2.「Certificates」を選択して「＋」ボタンを押す
#####3.「Service」の「Apple Push Notification service SSL (Sandbox)」を選択
![キャプチャ10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/fb5abd29-daa6-32a6-5d8e-440696b5db40.png)

#####4.「Create a New Certificate」で事前に作成した”CSRファイル”を選択
#####5. 次画面で「Download」を押してcerファイルをダウンロードしてデスクトップに保存
#####6. デスクトップのcerファイルをダブルクリック
#####7. キーチェーンアクセスが開く！

これが最後の工程です。

#####8. キーチェーンアクセスに追加されていることを確認して該当のファイルを右クリック
#####9. 「～～～～を書き出す」を選択

![キャプチャ11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/954cc495-58dd-8aef-fdc2-8e2269e98a21.png)

#####10.「証明書」の名前を任意に入力して、ファイルの保存先を選択して「保存」を押す
![キャプチャ12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/967440be-65ed-2631-cc0e-b1c3cbb041a3.png)
　※フォーマットは変更しないでください

#####11. 次に証明書のパスワードを設定する画面が出るので任意に設定

「補足」
ここでパスワードを設定するとアプリのビルド時にパスワードが必要になります。
パスワード無しでも良い場合は空欄のまま進めてください。

#####12. システムからパスワードの入力要求があるので対応
![キャプチャ14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/710015/0e1027a0-c95b-2dcb-8025-cd1f7184262e.png)

これは現在Macにログオンしているユーザーのパスワードを入れてください。
証明書とは一切関係無いパスワードになります。

#####13. 指定の場所に保存された「<font color="Red">p12ファイル</font>」を確認


これでビルドする時に必要な「p12ファイルとプロビジョニングプロファイル」の作成が完了しました！

最後に作成したp12ファイルと、途中でダウンロードしたプロビジョニングプロファイルを使用して
アプリをビルドしてみてください。

きっとPush通知が飛んでくると…思います(´・ω・`)

以上がiOSのPush通知用証明書とプロビジョニングプロファイルの作成方法になります！

#さいごに
Push通知が飛んでこない…
ビルドに失敗する…

こんなことが<font color="Red">よく発生します。</font>

●Push Notificationsにチェックが入っているか再確認
これ…ホントによくやります。
事前に確認しましょう！

●作った順番を間違えている
記事の順番通りに作成するのが基本です。
元から証明書など作成しているのであればSKIP出来ますが
最初のうちは全て新規に作成することをオススメします。

●ビルド時にエラーになる
Xcodeに表示されたエラー内容にもよりますが、
やっぱり「Push Notifications」のチェック入れ忘れが多いです。
証明書とプロビジョニングプロファイルが紐づいてないといったエラーも考えられますので、
ビルドした人にどんなエラーが出たのか確認しましょう。


他にも原因は考えられますが、大体は上記の3つが多いです。

あと最後になりますが、、、コレが一番重要かもしれませんｗ

作り方とか画面とかが勝手に変わる可能性があります（Appleの気まぐれですｗ）
大きく文言とかは変わらないと思うので、きちんと自分が作っているものを理解して対応しましょう！




# We look forward to your visit.
株式会社GENZではソフトウェアのテストサービス業務を行っています。
キャリア採用も行っておりますので、ご興味がある方は以下をご確認ください！
[株式会社GENZ - スマホアプリ検証]
(https://www.genz.jp/test-service-menu/mobile-testing/?qi=20210513)
[株式会社GENZ - 採用情報]
(https://www.genz.jp/recruit/?qirecruit=20210513)