ios - 如何将证书从开发切换到生产?

标签 ios ssl parse-platform ad-hoc-distribution

我正在尝试测试我的应用程序,但是当我使用通知时出现错误,因为我有开发 APN 而不是生产 APN。我的问题是上传它进行解析。首先我创建了一个开发 SSL 证书,然后我回去做了一个生产 SSL 证书,但我在上传生产证书时遇到了问题,因为它不是 APN,而是 Apple 推送服务。我还创建了一个 Distribution Provisioning(临时)。

enter image description here

最佳答案

Apple Push Notification 服务有点奇怪:

在客户端: 如果您使用 Xcode 构建客户端,您通常会构建应用程序的“调试”版本。在这种情况下,registerForRemoteNotification 方法将为您创建一个沙盒设备 token 。

如果您构建应用的“发布”版本,请使用相同的方法为您创建一个生产设备 token 。

在服务器端: 如果您有沙盒设备 token ,则只有在您使用带有沙盒 SSL 证书的 Apple 沙盒推送通知服务时,您才能向该设备发送推送通知。

如果您有生产设备 token ,则必须将 Apple 的生产推送通知服务与您的生产 SSL 证书一起使用,才能向该设备发送推送通知。

棘手的部分是:

  1. 如果您只有一个设备 token ,您将不知道它是生产设备 token 还是沙盒设备 token 。
  2. 如果您想在同一台服务器上使用发布和调试客户端,该服务器必须同时使用沙箱和生产服务。您需要一种机制来决定何时使用哪种服务。

顺便说一句:Ray Wenderlich 有一个很好的教程,其中还包含一个有用的 PHP 脚本,便于测试。 http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

关于ios - 如何将证书从开发切换到生产?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343832/

相关文章:

ios - 使用 iOS Swift 将指针值保存在 parse.com 中

swift - 数据未添加到 Parse 中?

ios - 为什么状态栏没有调整其文本的颜色以匹配我的 UINavigationController?

ios - 如何在 iOS 上实现 STARTTLS?

apache - 将支付信息发送到服务器的最佳方式是什么?

ssl - 通过完整记录握手来破坏 TLS 安全

ios - 在 Xcode 上使用 Parse (Swift) 注册时出错

ios - 如何用一个全新的 Swift 项目覆盖 Objective-C 项目(重新开始)?

iphone - iOS 7 更新对我的应用的影响

iphone - 应用程序是否有可能并且有必要实现零内存泄漏?