iOS的APNS开发与生产

伙计们,我很难弄清楚APNS(推送通知)开发人员(沙箱)和生产模式之间的主要区别。 特别是我有以下问题:

1)我可以在推送通知的应用程序商店中启动一个应用程序,该应用程序只注册了APNS开发者证书吗? 还是我需要使用APNS生产为应用程序我想要在应用程序商店启动?

2)一般来说,除了“发展APNS”和“生产APNS生产”之外,还有哪些function性原因会影响我的决定。 特别是为什么我会select为我的应用程序实施一个APNS开发人员证书,为什么不直接在生产推送帐户上运行所有内容?

以下是苹果公司在其网站上所说的内容,但这并不是我的问题的核心:

开发:使用开发环境进行供应商应用程序的初始开发和testing。 它提供与生产环境相同的一组服务,尽pipe服务器单元数量较less。 开发环境也作为虚拟设备,实现模拟的端到端testing。 您可以访问gateway.sandbox.push.apple.com上的开发环境,出站TCP端口2195。

生产:构build提供者应用程序的生产版本时使用生产环境。 使用生产环境的应用程序必须符合苹果的可靠性要求。

如果要将应用程序发布到应用程序商店,则需要使用生产供应configuration文件,因此与APNS开发人员证书一起发送的所有通知都不会到达使用生产供应configuration文件签名的应用程序。

为什么不使用生产APNS证书? 那么你可以做到这一点,但…

  • 为了testing,您需要使用生产Ad Hoc Provisioning Profile来构build您的应用程序,这是编译时的大量工作
  • 在开发中使用生产证书,因此使用临时生成,您不能与debugging器一起运行。 使故障排除非常痛苦。
  • testing通知会使所有内容都进入生产环境,因此您必须格外小心

以上回答非常准确。 我想指出,你现在可以在开发中使用生产证书。 不同的是,你将发送到“gateway.sandbox.push.apple.com”进行开发,而“gateway.push.apple.com”进行生产。 我认为分离沙箱和生产的原因是为了避免向真实用户发送testing推送通知。 想象一下,你做爆炸通知,你所有的用户将有通知。