HOME > CONIT Labs.

CONIT Labs.

iOSプッシュ通知 組み込みチュートリアル(Samurai Notification)


iOSプッシュ通知 組み込みチュートリアル(Samurai Notification)

SSS Producer佐々木です。

 

以前、iOSプッシュ通知アプリサンプルコードを公開しましたが、

管理画面操作も含めた全体的なチュートリアル手順を紹介します。

 

 

1. 管理画面にて新規アプリ登録

1−1.アプリ名の設定とSamuraiNotificationを使うように登録します。

アプリケーション名を入力し、SamuraiNotificationにチェックマークを入れます。

PEMファイルを持っている場合は、ここでPEMファイルを登録できますが、

チュートリアルでは、次項で説明します。

 

 

1−2.プッシュ送信用のPEMファイルを登録します。

1−2−1.iOS DevCenterにてAPPIDを作成します

(1−2−1は新規にアプリを登録する場合の手順になります。既にリリースしているアプリの場合は、登録済みのためスキップします。)

Description=アプリの簡単な説明

BundleID=アプリのIDです。通常はjp.co.conit.tutorialappなどドメイン名の逆順でIDを付与します。

真ん中のBundleSeedIDはそのままでOKです。

 

 

1−2−2.KeyChain.appで証明書リクエストファイルを作成

スクリーンショットのように、

・メールアドレスを入力

・ディスクに保存をチェック

・鍵ベア情報を保存にチェック状態にして、続けるボタンを押します。

ファイルの保存ダイアログが表示されるので、チュートリアルではファイル名を

pushtest-CertificateSigningRequest.certSigningRequestとして保存します。

このファイルは次ステップで使います。

 

 

1−2−3.iOS DevCenterにてプッシュ用の証明書登録

iOS DevCenterのAppID画面から今回使用するアプリを選択し、

「Enable for Apple Push Notification service」のチェックボックスをONにして、

1−2−2で作成した証明書リクエストファイルを、開発用である「Development Push SSL Certificate」に登録します。

Continueで次へ進みます

ファイル選択で、先ほど作成した証明書リクエストファイルを登録しGenerateで次へ進みます。

成功しました。Continueで次へ進みます。

DownloadボタンからAppleが署名した証明書をダウンロードします。

aps_development.cerファイルがダウンロードされますので、ダブルクリックします。

するとKeyChain.appの中で、Appleに署名された開発用の秘密鍵と証明書が無事に紐づきます。

最後にDONEをクリックです。

KeyChain.appにApple署名済みの証明書が登録されました。

このフローは開発用のプッシュ通知SSL証明書(&秘密鍵)の生成フローですが、

(同様の手順で本番リリース用(Production)のファイルも作成しておきます。)

 

1−2−4.KeyChain.appからp12ファイルを書き出し

KeyChain.appで「Apple Development IOS PushService:アプリのバンドルID」となっている行を選択し右クリックし書き出しをクリックします。

書き出しを行う際には、P12ファイルのパスワード入力が求められますので入力してください。

またその後KeyChain.appのパスワード(Macログインパスワードと同じ)も求められますので入力してください。

チュートリアルでは仮にpushtest-apns.p12というファイルで書き出します。

(同様に本番リリース用の「Apple Production IOS Push Service:アプリバンドルID」も書き出しておきます。)

 

 

1−2−5.p12ファイルをpemファイルにコンバートしてSamurai Notificationに登録

1−2−5−1.p12ファイルをpemファイルにコンバート

 ターミナル.appを起動し、opensslコマンドにてファイル形式変換を行います。

#こちらはMacOS上でのコマンド例です。その他OSではパラメータ等が異なる可能性があります。

 

アプリケーション編集のページを開き、開発用証明書と製品用証明書の項目に、

それぞれ開発用と本番用に作成したpemファイルを登録します。

 

2.iOSアプリのソースコード編集

2−1.ソースコード組み込み

先日のブログにてサンプルコードを紹介しましたが、

AppDelegateのソースコードを修正します。

サンプルコード記事(http://www.conit.co.jp/conitlabs/?p=1513

こちらを参考にして既存のアプリにサンプルコードを組み込みます。

簡単に説明すると、アプリの起動時(又は任意の場所)に

(1)デバイストークンを取得するコード

(2)取得成功ならばデバイストークンをSamurai Notificationサーバに送信する処理

(3)必要ならば、エラー処理等を組み込みます。

サンプルアプリでは起動時処理に組み込んでいますが、

リリースする際には、違う場所に記述してください。

AppDelagateのdidFinishLaunchingWithOptionsでは、

処理時間が20秒を越えるとアプリが強制終了させられていまいますので

そのような強制終了を回避する為にも、違う場所で処理を実行したほうが良いと思われます。

 

2−2.プッシュ用のプロビジョニングファイルでビルドし実機インストール

2−2−1.iOS DevCenterにてプロビジョニングファイルを作成します

プッシュ通知を受けるアプリでは、ワイルドカードのプロビジョニングファイルでは

作動しません。

ですので、ワイルドカードのプロビジョニングファイルではなく、

バンドルIDが指定されているプロビジョニングファイルを作ります。

 

 

2−2−2.XCodeにて新しいプロビジョニングファイルでビルドするように設定を変えます

元々ワイルドカードではないプロビジョニングファイルを使っている場合は、

一度プロビジョニングファイルをModify等で再作成したものをお使いください。

2−3.アプリを実機で起動し、SamuraiNotificationサーバにデバイストークンを送信する

 iPhoneを接続し、XCodeで実機上で実行します。

ログやデバッグ実行などで、処理が正常に動いている事を確認します。

通信エラーが発生した場合や、サーバのエラーコードなどは適宜修正します。

主に、サーバのホスト名が間違っている事や、アクセストークンが間違っている場合があります。

アクセストークンも開発用と本番用がありますので、開発用を使うようにしてください。

あくまでも本番用(production)はAppStoreにリリースされた物に対して

プッシュ通知するような仕組みになっています。

 

3.管理画面にてデバイス登録確認

3−1.デバイストークン一覧画面

2−3でアプリ起動から、およそ1〜2分以内に

サーバ側でデバイストークンが登録されます。

デバイストークン一覧画面を開き、

起動した端末が1件登録された事を確認してください。

(スクリーンショットでは2台のiOS端末で実行したので2件登録されています)

このデバイストークン一覧が0件なのであれば、

2−3でアプリ側からのデバイストークン登録処理が失敗しています。

 デバッグ実行や、エラーログなどを確認し

問題解決を行い、デバイストークンが登録されるように修正します。

 

 

4.プッシュメッセージ送信

4−1. メッセージ登録画面

iOS端末を電波の良い場所でロック画面にしておきます。

適当にテストメッセージを入力して、登録ボタンを押します。

詳細オプションの日時指定をしなければ、1分以内には送信処理が開始されます。

 

4−2.受信確認

通信環境の良い場所にiOS端末をセットし

プッシュ通知が飛ぶのかをご確認ください。

最短で即時通知、遅くとも1時間以内には通知がくるはずです。

通知が飛ばない人は、iOSのインターネット通信状況を確認してください。

WiFiに接続していたけど、WiFiルーターから先が死んでいたというような状況もあります。

#ただし、Appleサーバの都合で極稀に本当に届かない場合もあります。

 

 

 

軽い気持ちで書き始めたら、かなりボリュームが多いですね。。。

知ってる人にはたいした事ないですが、

知らない人だと挫折してしまうポイントですね。

 

#こちらの内容は後日、チュートリアルとして画像とともにドキュメントサイトに反映する予定です。

正式なドキュメントサイトがまだまだ情報不足となっておりご不便をおかけしております。

制作スタッフが随時ドキュメントの充実を行っております。

===

SamuraiSmartphoneServices> http://www.conit.jp/

SamuraiNotification> http://www.conit.jp/product/service2.html

コメントを残す

コニット開発室

CONIT Official Tweet

CONIT Facebook FanPage

CONIT BLOG

株式会社コニット

SamuraiSmartphoneServices

Buy and take only medicines from online pharmacy ,]}$ drugs online has affordable prices. Brand name drugs Canadian pharmacy [*}: compare drug prices Canada delivering medicines at your door. Free online consultation at https://canada-pharmacy-store.com <;) order cialis highest value and quality. Is it legal to mail prescription drugs? Yes, Canadian drugs [.($ order viagra . After ordering you will be contacted by our managers and agree on the delivery details.