iOS APNS开发[沙盒]与生产

时间:2015-02-17 04:27:29

标签: ios push-notification apple-push-notifications provisioning-profile p12

伙计我在查明APNS(推送通知)开发人员(Sandbox)和生产模式之间的主要差异时遇到了一些麻烦。特别是我有以下问题:

1)我是否可以使用仅针对APNS开发者证书注册的推送通知在应用商店中启动应用程序?或者我是否需要使用APNS Production来购买我想在应用商店推出的应用?

2)一般来说,除了"开发APNS"以外的功能原因是什么? "生产APNS"生产这将告诉我的决定。特别是为什么我会选择为我的应用程序实施APNS开发人员证书,为什么不在生产推送帐户上运行所有内容?

这是Apple在其网站上所说的内容,但它并没有触及我的问题的核心:

  

开发:使用开发环境进行提供者应用的初始开发和测试。它提供与生产环境相同的服务集,但服务器单元数量较少。开发环境还充当虚拟设备,支持模拟端到端测试。   您可以在gateway.sandbox.push.apple.com,出站TCP端口2195访问开发环境。

     

生产:在构建提供商应用的生产版本时使用生产环境。使用生产环境的应用程序必须符合Apple的可靠性要求。

2 个答案:

答案 0 :(得分:26)

如果您要将应用发布到应用商店,则需要使用生产配置文件,因此使用APNS开发者证书发送的所有通知都不会到达使用生产配置文件签名的应用。

为什么不仅使用生产APNS证书?那么你可以这样做但是......

  • 为了测试您需要使用Production Ad Hoc Provisioning Profile进行构建,这在编译时需要做很多工作
  • 在开发中使用生产证书,因此使用ad-hoc构建,您无法使用调试器运行。使故障排除非常痛苦。
  • 测试通知会使一切都投入生产,因此您必须格外小心

答案 1 :(得分:9)

dminones的答案非常准确。我想指出,您现在可以在开发中使用生产证书。不同之处在于您将发送到“gateway.sandbox.push.apple.com”进行开发,并将“gateway.push.apple.com”发送给生产。我认为分离沙箱和生产的原因是避免向真实用户发送测试推送通知。想象一下,你做爆炸通知,所有用户都会收到通知。