このページではiOS端末にPush通知を行うための準備について記載します。

AppPotはApple社のAPNS (Apple Push Notification Service)というサービスを利用して、iOS端末にPush通知を送信します。
Push通知のための準備の流れは次の通りです。

  1. App IDの作成
  2. APNS証明書の作成
  3. Provisioning Profileの作成
  4. APNS証明書の登録
  5. Push通知関連の設定
  6. アプリケーション実装側の設定

※作成日:2018/07/24

◆Apple Developer Centerの作業

まず、Apple Developer CenterからAdmin以上の権限を持つアカウントでログインし、以下の準備作業を行います。

ログインしたあと、メニュー左側の「Certificates, IDs & Profiles」を選択します。

1. App IDの作成

Push利用をONにしたAppIDを新規作成するため、以下の手順を実施します。


左側の「App IDs」を選択したあと、右上の「+」ボタンを選択します。


以下のデータを入力して、「Continue」を選択します。

  • 「App ID Description」 > 「Name」:アプリの名前を入力
  • 「App ID Suffix」 > 「Explicit App ID」を選択
  • 「Bundle ID」:「jp.co.ncdc.pushtest」のような関連ドメインを逆にしたユニークな値を入力

「Push Notifications」が「Configurable」になっていることを確認します。
問題なければ、「Register」をクリックします。


内容を確認の上「Done」をクリックします。


App IDsの一覧に作成したApp Idが表示されます。

既に作成済みApp IDについて

対象のApp IDからEidtを選択したあと、新規と同様に「Push Notifications」にチェックを入れて「Done」をクリックします。

2. APNS証明書の作成

Pushを利用するための証明書を作成します。
作成された証明書はキーチェーンに一旦登録して、そこからp12ファイルを生成した後、サーバサイトから登録を行います。


Certificatesメニュー選択後、「+」の追加ボタンを選択します。


「Apple Push Notification service SSL(Sand box)」を選択して、下にある「Contunue」をクリックします。


1で作成したAppIdを選択してから「Contunue」をクリックします。


次の画面でCSR(CertificateSigningRequest)ファイルを登録します。

※CSRファイルがない場合はここを参考に作成してから次に進んでください。

「CertificateSigningRequest.certSigningRequest」を添付したあと、「Continue」をクリックします。

Downloadを選択すると「aps_development.cer」が保存されます。
その証明証をダブルクリックして、キーチェーンに登録します。

登録できた場合、キーチェーンに上記のように「Apple Developement iOS Push Services:xxx」という証明書が表示されます。

CSR作成手順

CSR(CertificateSigningRequest)作成の手順です。既にCSRファイルがある場合は必要ありません。

まず、Finderの「アプリケーション > ユーティリティ」から「キーチェーンアクセス」を開きます。

証明局に証明余を要求を選択します。

「ユーザのメールアドレス」と「通称」を入れて、「ディスクに保存」をチェックしたあと、「続ける」を選択します。

Finderに表示を選択すると保存された「CertificateSigningRequest.certSigningRequest」があります。
あと、完了を選択します。

3. Provisioning Profileの作成

開発の際に必要な証明書を作成します。

Provisioning Profileメニューを選択します。

右上の「+」ボタンを選択します。

開発用

「Development」から「iOS App Development」を選択して、「Continue」をクリックします。

作成したApp IDを選択して、「Continue」をクリックします。

開発で利用されるメンバー(証明書)をチェックして、「Continue」をクリックします。

開発で利用されるデバイスをチェックして、「Continue」をクリックします。

プロビジョニングの名を記入して、「Continue」をクリックします。

「Done」をクリックします。

Store配布用

「Distribution」の「App Store」を選択して、「Continue」をクリックします。
※ Ad Hocで配布する場合は「Ad Hoc」を選択してください。

配布(Distribution)用の証明書(Certificates)を選択します。

※ 証明書が複数ある場合、日付が一番最新の証明書を選びましょう。

プロビジョニングの名を記入して、「Continue」をクリックします。
あとは「開発用」と同じく、「Done」を選択して、終了です。

◆AppPot管理コンソールの作業

APNS証明書の登録

APNS証明書を書き出します。
書き出す際に「端末側のパスワード」と「書き出し用」のパスワードを聞かれますが、
「書き出し用」のパスワードは次に必要なので、メモしておいてください。

上記から書き出した「p12」ファイルをAppPotのサイトにログインして、アプリの編集画面から登録します。
パスワードは上記の「書き出し用」パスワードを入れてください。

◆開発側の作業

Xcodeで開発に必要な設定を行います。

Accountの設定

XcodeからPreferencesを開き、Accontsを選択します。
アカウントが登録されてない場合は、左下の「+」をクリックして、ログインしてください。
その後、右側の情報から「Download Manual Profiles」を選択すると作成したプロビジョニングファイルがダウンロードされます。

Push通知関連の設定

「Target > プロジェクト」から「Capabilities」タブを選択して、以下の設定を行います。


.
.
.

アプリケーション実装側の設定

APNSから取得した送信者ID(Token)を登録します。

AppDelegate.swift

func application(_ application: UIApplication,
                     didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        let tokenParts = deviceToken.map { data -> String in
            return String(format: "%02.2hhx", data)
        }
        
        // 送信者ID
        let token = tokenParts.joined()
        print("Device Token: \(token)")
        
        // AppPotへの端末登録
        let apppot = try! AppPot()
        apppot.registerDevice(deviceToken: token,
                          onSuccess: { response in 
                              print ("Succeed to register deviceToken. : \(response)")
                          },
						  onError: { error in 
                          	  print("Error at register deviceToken : \(error)")
                          })
    }