web-dev-qa-db-ja.com

iOS APNS開発[サンドボックス]対本番

みんなAPNS(プッシュ通知)開発者(サンドボックス)と本番モードの主な違いを理解するのに苦労しています。特に、次の質問があります。

1)APNS開発者証明書のみに登録されているプッシュ通知を使用して、アプリストアでアプリを起動できますか?または、アプリストアで起動するアプリにAPNS Productionを使用する必要がありますか?

2)一般に、私の決定を知らせる「開発APNSの開発」と「生産APNSの生産」以外の機能的な理由は何ですか。特に、アプリにAPNS開発者証明書を実装することを選択する理由と、プロダクションプッシュアカウントですべてを実行しない理由は何ですか?

以下は、AppleがWebサイトで言っていることですが、私の質問の核心にはなりません。

開発:開発環境を使用して、プロバイダーアプリの初期開発とテストを行います。サーバーユニットの数は少ないものの、運用環境と同じサービスセットを提供します。開発環境は仮想デバイスとしても機能し、エンドツーエンドのテストをシミュレートできます。 gateway.sandbox.Push.Apple.com、outbound TCP port 2195で開発環境にアクセスします。

Production:プロバイダーアプリの製品版をビルドするときに、製品環境を使用します。実稼働環境を使用するアプリは、Appleの信頼性要件を満たす必要があります。

41
Eugene

アプリをアプリストアに投稿する場合は、プロダクションプロビジョニングプロファイルを使用する必要があります。そのため、APNS開発者証明書で送信されたすべての通知は、プロダクションプロビジョニングプロファイルで署名されたアプリに届きません。

実稼働APNS証明書のみを使用しないのはなぜですか?まあこれはできますが...

  • テストするために、実稼働アドホックプロビジョニングプロファイルを使用してビルドする必要があります。これは、コンパイル時に多くの余分な作業です。
  • 開発環境で実動証明書を使用し、したがってアドホックビルドを使用すると、デバッガーで実行できません。トラブルシューティングが非常に苦痛になります。
  • テスト通知によりすべてが実稼働に移行するため、特に注意する必要があります
31
dminones

dminonesの答えは非常に正確です。開発で生産証明書を使用できるようになりました。違いは、開発用に「gateway.sandbox.Push.Apple.com」に送信し、本番用に「gateway.Push.Apple.com」に送信することです。サンドボックスと本番を分離する理由は、テストプッシュ通知を実際のユーザーに送信しないようにするためだと思います。爆風通知を行うと、すべてのユーザーが通知を受け取ることになります。

11
Terry Tan