iOS APNS开发[沙盒]与生产

Eug*_*ene 41 push-notification apple-push-notifications ios provisioning-profile p12

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

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

2)一般而言,除了"开发APNS"和"生产APNS"之外的其他功能原因可以为我的决定提供信息.特别是为什么我会选择为我的应用程序实施APNS开发人员证书,为什么不在生产推送帐户上运行所有内容?

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

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

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

dmi*_*nes 32

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

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

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


小智 12

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