この記事は完全に自分向けの備忘録です。

プッシュ通知を受け取る設定は終わってみれば、簡単なのかもしれないがつまづくとどっちに向いていいかわからなくなりますw。私も苦労した一人ですw

手順
1_Apple Developerセンターにて、App IDsを作成。
※このときPush Notificationsをenabledになるように登録する。

2_Macのキーチェーンにて、証明書発行アシスタント→認証局に証明書を要求(CSRファイルを作成する)。
※開発当初に開発証明書を要求する手順と同じ。
作成したCSRを利用して、Apple DeveloperセンターにてDevelopment SSL Certificate及びProduction SSL Certificateを作成する。もちろんダウンロードもする。
※どちらも先ほど作成したCSR1個で作成できる。

ダウンロードしたファイルをダブルクリックすると、キーチェーンアクセスにて自分の証明書(分類の中)にてApple Development IOS Push Servicesが登録される。

3_.p12ファイルの作成
.p12ファイルはサーバにて登録するファイルである。つまり、ただ作成してサーバに渡すだけ。
キーチェーンアクセスにて自分の証明書(分類の中)にてApple Development IOS Push Servicesの下位層(左側の三角印をクリック)に秘密鍵が表示される。証明書、秘密鍵両方を選択したまま

メニュー→「ファイル」→「書き出す…」
名前を適当に設定し、フォーマットを .p12 にしてファイルを作成する。
※サーバによっては、.pemファイルに変換する必要がある。

4_iOS Provisioning Profilesの作成
先ほど作成したApp IDsのProvisioning Profileを作成する。
※Development SSL Certificate(開発用)を利用する場合は、ワイルドカードのProfileではなく対象Appの開発(テスト)用のProvisioning Profileも作成する。もちろんダウンロードもする。
ダウンロードしたファイルをダブルクリックして、登録する。

5_Code Signingの設定
通常のアプリと同じようにProfileを設定する。
※Development SSL Certificateを利用する場合は、開発用Profileを設定する。
このときEdit Schemeの設定を忘れないように!!

6_実装
AppDelegate.mに実装する。

// push通知を受信するためにデバイストークンを登録
// こうすることでアプリ起動時に自動的にAPNsにデバイストークンを渡す。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Remote Notification を受信するためにデバイスを登録
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge
| UIRemoteNotificationTypeSound
| UIRemoteNotificationTypeAlert)];
return YES;
}

// 問題が無ければ下記のデリゲートにてデバイストークンをAPNsから受信できる。
// デバイストークンを受信した際の処理
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
// ここでサーバにデバイストークンを送信。
// 送信方法はサーバ仕様によって異なる。
}

続きは後日w