質問: Monacaでアプリ制作をしています。 mobile backendからPush通知をしているのですが、2つ目を作成したところでmobile backendからの送信が送信エラーとなり、送信出来なくなりました。 アプリのデバッグ版をインストールした後、mobile endのInstallationsにはデバイスが登録できているので、APNs証明書が不正なのかなと思います。 1つ目のアプリとほぼ同じ操作をしているので問題ないと思うのですが、 どこが問題なのか分かりません。。。 下記に手順を書くので、もし不正な点などあればご指摘ください。 【mobile backend連携設定】 1.新規プロジェクトの作成 2.APIキーとクライアントキーをMonacaのアプリに設定 【Monaca設定・iOS証明書作成】 1.MonacaのiOSビルド設定から「CSRの作成」 2.iOS Developerにログインし、1のCSRを使って「iOS Development」の開発者証明書を作成 3.AppIdを作成 (4.Deviceを登録 ※事前に作成したアプリの登録設定を流用) 5.「Provisioning Profiles」で3のAppId、4のDevice、2の証明書を使って「Profile」を作成 6.2の証明書と5のProfileをMonacaにアップロード 7.アップロードした証明書について、「エクスポート」を選択してcer.p12ファイル(秘密鍵)をダウンロードしておく 【APNs証明書】 1.iOS Developerにログインして、[Certifications]の[Apple Push Notification service SSL]を選択して、前述のCSR、AppIdを使ってAPNs証明書を作成 2.1の証明書をダウンロード・クリックしてキーチェーンに登録 3.前述のp12ファイルをクリックしてキーチェーンに登録 4.キーチェーンを開いて該当するAppIdの証明書について、p12ファイルとして書き出す 5.mobileBackendに4のp12ファイルをアップロード 【デモ版テスト】 1.デモ版アプリをiOS Developerに登録済みの端末でインストール 2.初起動時にPush通知を許可する 3.mobile BackendのInstallationsに端末が登録されていることを確認 4.mobile Backendの画面からプッシュ通知を送信して端末に届く事を確認
回答: APNS証明書あたりの手順が怪しいようです。 > > 1.iOS Developerにログインして、[Certifications]の[Apple Push Notification service SSL]を選択 > > > [Apple Push Notification service SSL]はDevelopmentとProductionがあります。 管理が煩雑になるのが嫌なので私はProductionを選んでアドホックとリリースでしかテスト・運用していませんが、おそらくデバッグビルドなどではDevelopmentを選ばなくてはいけない...という気もしますし、APNSはmobile backendでの設定なんだから関係ないのかなという気もします。 つまり、**Productionでアドホックとリリースなら大丈夫**だけど、それ以外のパターンのせいでNGの可能性はあります。 > > 2.1の証明書をダウンロード・クリックしてキーチェーンに登録 > > > Monaca産のCSRをベースに証明書を作ったのですから、p12ファイルを作成するのにMacを利用する必要はありませんよ。 (...ていうか私はMacでのp12ファイル生成に成功しませんでした) Monacaの理念かどうかは知りませんが、実は**MonacaのビルドではMac本体は不要**です。 Macを持っていない人でもiOSアプリが開発できるように、十分な各種機能が揃っています。 前回の質問のときにも書きましたが、MonacaにAPNS証明書をアップロードしたあとにエクスポートを行えば、p12ファイルになります。 逆にいうと、ここでp12ファイル生成に成功したということは、どこで生成したCSRで作業していたのかがあやふやになってた可能性がありますね。 Monacaで作業してアップロード・ダウンロード。AppleDeveloperで作業してアップロード・ダウンロード。 ファイル置き場としてMacを利用するのはいいとして、作業自体はすべてWeb上で完結するという前提で、一度最初からやり直してみるのがいいかもしれません。