概要
過去に紹介した記事で iOS のプッシュ方法を紹介しました
このときに使用していたプッシュ送信用の証明書は Development 用の証明書を使っており、この証明書は普通アプリ公開時には使用しません
別途 Production (Distribution) 用の証明書を作成してこれを使うのですが、公開する前にテストしたい場合も多いと思います
結構ハマったので自分が実施した手順を紹介します
環境
- Mac OS X 10.10.4
- Xcode 6.4
- iPhone6 (iOS 8.4)
- Developer Member Center 20150806 時点
手順
基本的な手順はこれと同じです
上記手順の中で注意することを紹介していきます
作成済みのAppIDのプッシュ通知の Distribution 側を有効にする
AppIDがない場合は適当に作成してください
すでに作成したAppIDがある場合は「Edit」からプッシュ通知を有効にすることができます
Edit したらプッシュを有効にする項目があるのでそれのチェックボックスをONにします
ONにしたら続けて証明書を作成しましょう
すぐ下に「Create Certificate」というボタンが出ると思うので Production SSL Certificate の方のボタンをクリックして証明書を作成します
証明書の作成は過去に紹介した方法と同じになります
事前に作成していると思われる CSR を指定して証明書を作成しましょう
Production 用のプッシュ送信用の証明書を作成すると証明書の情報に「APNs Production iOS」と表示されます
以下は Production 用の証明書まで作成が完了してプッシュ通知が有効になっている状態のAppIDになります
この状態になっていればOKです
証明書から .p12 ファイルを作成する
先ほど作成した Production 用の証明書ダウンロードします
ダウンロードした証明書をダブルクリックしてキーチェーンアクセスで開きましょう
あとは過去の記事を参考に .p12 ファイルを作成すればOKです
一応、NCMB を想定しているので作成した .p12 ファイルはアップロードしておくといいと思います
Adhoc 用のプロビジョニングプロファイルを作成する
これが一番重要かと思います
Developer Member Center で Adhoc 用のプロビジョニングプロファイルを作成しましょう
作成を開始するとプロビジョニングプロファイルファイルの種類を選択する画面になると思います
そこで Distribution 側の「Ad hoc」を選択しましょう
次は AppID を選択する画面なのでプッシュ通知を有効にした AppID を選択しましょう
証明書の選択画面ではプッシュ通知用の証明書を選択しません(というかできません)配布用の証明書を素直に選択しましょう
その次で Ad hoc で配布する端末を選択することになると思います
基本は全部チェックでいいと思います、適宜変更してください
そして、最後にプロビジョニングプロファイルの名前を入力します
これで Adhoc 用のプロビジョニングプロファイルの作成完了です
作成したプロビジョニングプロファイルはあとで Xcode と同期して Xcode 上のプロジェクトに指定します
サンプル用のプロジェクトを作成
特に気にすることはないと思います
普通に作成しましょう
過去の記事を参考にデバイストークンを登録する処理までコーディングしてしまってください
プロジェクトをAdhocビルドできるようにする
ここもポイントです
まず
Xcode -> Preferences -> Accounts -> View Details (右下) -> 更新ボタン (左下)
を実行し Developer Menter Center 上のプロビジョニングプロファイルの情報を Xcode に同期しましょう
同期が完了したらプロジェクトのビルドの設定をします
プロジェクトを選択 -> Build Settings -> Provisioning Profile
で先ほど作成した Adhoc 用のプロビジョニングプロファイルを指定しましょう
Provisioning Profile の欄がない場合は実機を接続して一回実機でビルドしようとするとエラーになり、その欄が登場すると思います
Provisioning Profile の欄を設定したら、その上の「Release」の欄を Distribution 用の証明書を指定しましょう
最終的に以下のようになっていればOKです
ビルドして .ipa ファイルを作成する
実機を接続 -> Product -> Archive
でビルドします
すると Archives というビルド結果の一覧のダイアログが表示されるので、右側にある「Export」を実行します
まずエクスポート方法を選択します
真ん中の「Save for Ad hoc Development」をクリックします
次にユーザを指定して、アーカイブが完了したら「Export」ボタンをクリックして .ipa ファイルをエクスポートします
保存先を選択しましょう
作成できた .ipa ファイルを実機に転送する
これは調べるといろいろと方法があるようです (Webサーバを使ったり、TestFlightを使ったり)
今回は iTunes を使った方法を紹介します
実機をつないだ状態で iTunes を立ち上げましょう
立ち上げたら iPhone を選択して App でアプリ一覧を表示しましょう
そしたら
ファイル -> ライブラリに追加
で先ほど保存した .ipa ファイルを指定します
すると iTunes 上に先ほど作成したアプリが登録されます
登録できたらインストールをクリックし右したので「転送」をクリックしましょう
これで Adhoc ビルドしたアプリを実機に転送することができます
動作確認してみる
ここまで来たら後はアプリを開いて動作確認してみましょう
今回は前回同様で NCMB の利用を想定しているためアプリを開いたときに NCMB 側にデバイストークンの情報が登録されればOKです
もちろん、サンプルプロジェクトを作成した段階で必要なコーディングは済ませておいてください
デバーストークンが登録できれば、あとは NCMB に .p12 ファイルをアップロードして、プッシュ通知を作成すればOKです
最後に
噂によると Xcodeだけでも .ipa ファイルの転送ができるので、それができる方はわざわざ iTunes とか起動しなくてもいいと思います
ハマったのはやはり Adhoc ビルドするところでしょうか
ずっと Development 用のプロビジョニングプロファイル指定して来たので Adhoc ビルドの存在自体を知りませんでした
Adhoc ビルドしていないアプリでもデバイストークンの登録はできるのですが、.p12 ファイルが Production 用だと証明書と一致せずうまく送信できません
とりあえず APNs は複雑すぎると思います
0 件のコメント:
コメントを投稿