iOSアプリへのpush通知を実装する方法

 今回はiOSアプリへのpush通知を実装します。iOSアプリへのpush通知は、Appleが用意しているAPNsサーバーを介さないと行えません。ここでは、APNsサーバーを利用するために必要な証明書の作成方法について解説していきます。

01: これから作成していくもの

  • APNsと通信するための各種証明書
  • push通知を行うプログラム
  • push通知を受け取るiOSアプリケーション

02: プッシュ通知のプロセス

 APNs

「Apple Push Notification Service」とはサーバーからの通知をiPhoneなどの端末に転送するAppleのプッシュ通知を送るためのサービス。

03: 各種証明書の作成手順

APNsと通信するために、下記の証明書及び証明書の元となるファイルが必要となります。1、2、3については1度作成してしまえば、以降のプロジェクトで使い回せるので2回目からは再作成不要です。

  1. CSRファイルの作成
  2. 開発用証明書(.cer)の作成
  3. 端末の登録
  4. AppIDの作成
  5. プロビショニングプロファイルの作成
  6. APNs用証明書(.cer)の作成
  7. APNs用証明書(.p12)の作成

それぞれ以下の関係で参照されます。

04: 環境

  • macOS Sierra バージョン10.12.3
  • Xcode バージョン8.2.1
  • iPhone(iOS10.2.1)
  • 「Apple Developer Program(有償版)」へ登録

05: 各種証明書の作成

1. CSRファイルの作成

「キーチェーンアクセス」を開いて、メニューバーの「キーチェーンアクセス」→「証明書アシスタンス」→「認証局に証明書を要求...」をクリックします。 証明書アシスタントに必要項目を入力し、「続ける」ボタンを押下する。
  • ユーザのメールアドレス: 任意
  • 通称: デフォルト
  • ディスクに保存: チェック
  • 鍵ペア情報を指定: チェック
保存先を設定する。 「鍵ペア情報」を設定する。
  • 鍵のサイズ: 2048ビット
  • アルゴリズム: RSA
「設定結果」が出るので、「完了」ボタンを押下する。

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

「Apple Developer Program」のメンバーセンターにログインする。 「Certificates, Identifiers & Profiles」をクリックする。 「Certificates」→「All」を選択し、右上の「+」ボタンを押下する。 「iOS App Development」にチェックを入れ、「Continue」ボタンを押下する。 「Choose file…」ボタンを押下して、先ほど作成したCSRファイルを選択し、「Continue」ボタンを押下する。 開発者証明書(.cer)が作成されるので、「Download」ボタンを押下してローカルに保存する。 ローカルに保存できれば「Done」ボタンを押下して、「開発者証明書(.cer)の作成」は完了です。

3. 端末の登録

「Devices」→「All」をクリックして、右上の「+」ボタンを押下する。 必要項目を入力し、「Continue」ボタンを押下する。
  • Register Device: チェック
  • Name: アプリの概要(任意)UDID: Xcodeで確認できる端末のidentifier
端末情報を確認して「Register」ボタンを押下する。 「Done」ボタンを押下して、「端末の登録」は完了です。

4. AppIDの作成

「Identifiers」→「AppID」を選択し、右上の「+」ボタンを押下する。 必要項目を入力し、「Continue」ボタンを押下する。
  • App ID Description
    • Name: アプリの概要(任意)
  • App ID Suffix
  • Explicit App ID: チェック
  • Bundle ID: Xcodeで作成したアプリと同じもの
  • Push Notifications: チェック
「Push Notifications」がConfigurableになっていることを確認する。 「Register」ボタンを押下して、「AppIDの作成」は完了です。

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

「Provisioning Profiles」→「All」をクリックして、右上の「+」ボタンを押下する。 「iOS App Development」をチェックし、「Continue」ボタンを押下する。 先ほど作成したAppIDを選択し、「Continue」ボタンを押下する。 先ほど作成した開発用証明書(.cer)を選択し、「Continue」ボタンを押下する。 先ほど登録した端末を選択し、「Continue」ボタンを押下する。 必要項目を入力し、「Continue」ボタンを押下する。
Profile Name: 任意
プロビショニングプロファイルが作成されるので、「Download」ボタンを押下してローカルに保存する。 ローカルに保存できれば「Done」ボタンを押下して、「プロビショニングプロファイルの作成」は完了です。

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

「Certificates」→「APNs Auth Key」をクリックする。 「Apple Push Notification service SSL(Sandbox)」にチェックを入れ、「Continue」ボタンを押下する。 先ほど作成したAppIDを選択し、「Continue」ボタンを押下する。 「Choose file…」ボタンを押下して、先ほど作成したCSRファイルを選択し、「Continue」ボタンを押下する。 APNs用証明書(.cer)が作成されるので、「Download」ボタンを押下してローカルに保存する。 ローカルに保存できれば「Done」ボタンを押下して、「APNs用証明書(.cer)の作成」は完了です。

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

作成した「APNs用証明書(.cer)」をダブルクリックで開く。 証明書を選択し、「書き出す」をクリックする。 必要項目を入力し、「保存」ボタンを押下する。
  • 名前: ファイル名(任意)
  • フォーマット: 個人情報交換(p.12)
パスワードを入力し、「OK」ボタンを押下する。 「許可」ボタンを押下する。 APNs用証明書(.p12)が書き出されれば、「APNs用証明書(.p12)の作成」は完了です。

06: push通知を行うプログラム

  • Houstonライブラリを使用してpush通知を行う
  • Amazon SNS モバイルプッシュ通知サービスを使用してpush通知を行う