ニフティクラウドmobile backend(mBaaS)などでAPNsとの連携に必要な準備(2014年3月時点)

# APNsとの連携に必要な準備

## 概要

このチュートリアルは、[ニフティクラウド](http://cloud.nifty.com)のmBaaSである「[ニフティクラウド mobile backend](http://mb.cloud.nifty.com/about.htm)」で、
プッシュ通知を使うためのものです。

（と、言いながら実はmobile backendあんまり関係ありません。
　APNsを使いたい人なら誰でも通る道だと思います。）

iOS端末へのプッシュ通知は、APNs(Apple Push Notification service)と連携しています。
mobile backendに登録されたプッシュ通知を、APNsに送信することで、
各端末にプッシュ通知が受信される仕組みです。

mobile backendとAPNsを連携させるのに必要なことは、
ダッシュボードからAPNsと連携するための証明書を設定することだけです。

このチュートリアルでは、APNsと連携するための証明書を取得する流れについて
説明していきます。

## APIキーを取得するのに必要なこと

* iOS Developer Programへの登録

iOS Developer Programの登録は有料であり、Appleへの料金が発生いたします。
詳細は[Appleのページ](https://developer.apple.com/jp/programs/ios/)をご覧ください。
以下では、iOS Developer Program登録後の手順について説明していきます。

## 証明書を取得するまでの流れ

### Member Centerを開く

[Appleの開発者サイト](https://developer.apple.com/)から、Member Centerを開き、
Appleのアカウントでログインします。

ログイン後の画面が以下のようになり、その中の
Certificates, Identifiers & Profilesの項目にあるリンクをクリックします。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns01.png" alt="Member Centerを開く">

### 証明書の管理画面を開く

iOS AppsのCertificatesを開きます。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns02.png" alt="Member Centerを開く">

### アプリを登録する

Appleにアプリを登録しないと、証明書が作成できません。
左メニューのIdentifiersを開き、右上の+ボタンをクリックすると、
アプリの登録画面が開きます。

* App ID Description(アプリ名)
* Bundle ID(Xcodeで表示されるBundle Identifier)
 * 確認方法
  * Xcodeを開く
  * 左側のファイル一覧から、プロジェクトをクリックし設定画面を開く
  * 作成されているTARGETを選択し、Generalの項目を開く
* Push Notificationを有効にする

以上の３点を設定し、登録を行ってください。
登録時の画面サンプルは以下のようになります。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns02_1.png" alt="アプリの登録">

### 証明書を作成する

証明書の一覧が表示されるので、右上にある+ボタンをクリックします。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns03.png" alt="Member Centerを開く">

証明書の作成画面に移るので、Apple Push Notification service SSLを選択してください。
下の画像では、開発版を作成しようとしていますが、製品版もメニューにありますので適宜選んでください。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns04.png" alt="Member Centerを開く">

どのアプリに紐づいた証明書を作成するのか選択する必要があります。
下のプルダウンメニューにAppleに登録されたアプリの一覧が出てくるので、
証明書を作成するアプリを選択してください。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns05.png" alt="Member Centerを開く">

次の画面に進むと、CSRファイルが必要であるという説明が出てきます。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns06.png" alt="Member Centerを開く">

CSRファイルは、キーチェーンアクセスから作成します。
キーチェーンアクセスのメニューから証明書アシスタント＞認証局に証明書を要求...を選択します。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns08.png" alt="Member Centerを開く">

メールアドレスと通称を設定し、ディスクに保存を選択して、続けるボタンをクリックします。
CSRファイルの保存場所を決めて、保存してください。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns09.png" alt="Member Centerを開く">

証明書作成画面に戻り、CSRファイルをアップロードしてください。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns10.png" alt="Member Centerを開く">

### 証明書を.p12形式に変換する

証明書の作成が完了すると、証明書をダウンロードすることができます。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns11.png" alt="Member Centerを開く">

ダウンロードした証明書をダブルクリックすると、キーチェーンアクセスが開きます。
証明書を選択し、メニューを表示して書き出しを選択してください。
このとき下の図のように、証明書と秘密鍵を両方表示して証明書のみ書き出して下さい。
秘密鍵をセットにして証明書を書き出すと、プッシュ通知を配信するときにエラーとなります。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns12.png" alt="Member Centerを開く">

保存名と場所を指定し、保存ボタンをクリックしてください。

<img src="http://mb.cloud.nifty.com/assets/images/tutorial/push_notification_setup/setupapns13.png" alt="Member Centerを開く">

書き出す証明書に対してパスワードを設定する画面が開きますが、設定せずにOKボタンをクリックしてください。
パスワードを設定してしまうと、mobile backendにアップロードしても利用できなくなってしまいます。

書き出された.p12形式のファイルを、mobile backendに設定することでプッシュ通知を行うことができます。
mobile backendでの設定については、[こちら](http://mb.cloud.nifty.com/doc/dashboard/push.html)をご覧ください。