40843
iOS で push 通知機能を実装しようとしています。push 通知を iOS にて実装するには、 APN
の証明書を取得する必要がある様子だと理解しています。 apple developer のアカウントページから、これを作ろうとしました。
<https://developer.apple.com/account/ios/certificate/create>

表示されたページの説明によると、どうやら、 APN の証明書には sandbox 用と、 sandbox & production
用がある様子です。このうちたとえば sandbox 用証明書の説明には、次のような説明があります。

> Establish connectivity between your notification server and the Apple Push
> Notification service sandbox environment to deliver remote notifications to
> your app.

これを読んで発生した疑問が次です:

  * ここでいう、 APN の sandbox environment は production environment と比べてどのような差異がありますか?もっと具体的にいうと、 firebase に証明書を登録しようとしているのですが、これに sandbox 用の証明書を登録すると何か問題は発生しますでしょうか?
CC BY-SA 3.0
2018-01-09T10:06:56.643
40839
2018-01-09T12:18:29.450
754
question
ios firebase push-notification
Apple Push Notification service sandbox environment とは?
Sandboxは開発時に使用するものでProductionはAppStoreで配布したアプリで使用されます。それぞれ署名もサーバーも異なります。

Firebaseに限らず一般的なPush通知のサービスではサンドボックスとプロダクションの両方の証明書を登録できるようになっているはずです。なので、普通は両方を登録して、開発環境とプロダクション環境で使い分けます。
CC BY-SA 3.0
2018-01-09T12:18:12.717
40842
2018-01-09T12:18:12.717
5519
40839
answer
> APN の sandbox environment は production environment と比べてどのような差異がありますか?

大きな違いとして、用途が異なります。

  * sandbox environment - 開発用（AppStoreに配布する前に使用する）
  * production environment - AppStore配布用

sandbox environment は開発用なので、AppStoreにアプリを提出する際に使うことができません。また、あらかじめ apple
developer のアカウントページに登録済みのデバイスにしかpushを送ることができません。

一方 production environment
は一般ユーザーのデバイスにもpushを送ることが可能です。しかし、AppStore配布前の開発中アプリに使用することはできません。

> もっと具体的にいうと、 firebase に証明書を登録しようとしているのですが、これに sandbox
> 用の証明書を登録すると何か問題は発生しますでしょうか?

問題は発生しません。強いて言うなら、前述の通り、あらかじめ登録済みのデバイスにしかpushを送れないことでしょうか。
CC BY-SA 3.0
2018-01-09T12:18:29.450
40843
2018-01-09T12:18:29.450
369
40839
answer