【问题标题】:iOS APNS Development [sandbox] vs ProductioniOS APNS 开发 [沙盒] 与生产
【发布时间】:2015-04-17 17:51:02
【问题描述】:

伙计们,我在弄清楚 APNS(推送通知)开发人员(沙盒)和生产模式之间的主要区别时遇到了一些麻烦。特别是我有以下问题:

1) 我可以在应用商店上启动一个只注册了 APNS 开发者证书的带有推送通知的应用吗?或者我需要使用 APNS Production 来开发我想在应用商店上发布的应用吗?

2) 一般来说,除了“在开发 APNS 上开发”和“在生产 APNS 上生产”之外,还有哪些功能性原因会影响我的决定。特别是为什么我会选择为我的应用实施 APNS 开发者证书,为什么不在生产推送帐户上运行所有内容?

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

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

生产:在构建供应商应用的生产版本时使用生产环境。使用生产环境的应用必须满足 Apple 的可靠性要求。

【问题讨论】:

  • FWIW 如果您要在开发门户中查看证书列表,则生产证书类型命名为:Apple Push Services,而沙盒的证书类型命名为: APNs 开发 iOS

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


【解决方案1】:

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

为什么不只使用生产 APNS 证书?好吧,您可以这样做,但是...

  • 为了进行测试,您需要使用 Production Ad Hoc Provisioning Profile 构建您的应用程序,这是在编译时需要做的大量额外工作
  • 在开发中使用生产证书,因此使用临时构建,您无法使用调试器运行。让故障排除变得非常痛苦。
  • 测试通知使一切都进入生产,因此您必须格外小心

【讨论】:

  • “测试通知使一切都投入生产”是什么意思?您的意思是您将不得不使用生产配置文件、证书等...?
  • 我的意思是,如果您出于各种目的使用 Prod 证书,您将无法仅推送到沙盒设备
  • 如果 APN 证书的类型由配置文件的类型决定,那么权利中的aps-environment 是什么意思?
  • @Honey 是的,没错!
  • 谢谢。我只能运行我的 Xcode,然后使用生产证书。我不需要任何特别的东西,我可以使用调试器。这会使前两个项目符号无效吗?
【解决方案2】:

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

【讨论】:

  • 我相信 Azure 通知中心现在也对应于 Apple(APNS) 证书配置页面中的生产与沙盒切换。
  • 很有意义
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 2014-02-25
  • 2014-01-03
相关资源
最近更新 更多