iOS 中的开发和生产 SSL 证书有什么区别?

What is the difference between development and production SSL certificates in iOS?

这可能是一个奇怪的问题,但它确实让我感到困惑。为什么我们必须为 iOS 中的推送通知创建开发和生产 SSL 证书?开发证书和生产证书有什么区别?

我正在开发带有推送通知的 iOS 应用(由自托管的 Parse Server 处理),当我将环境从开发切换到生产(使用生产证书)时,我没有收到我的设备上不再有推送通知。一旦我将此应用程序上传到应用程序商店(然后,它将投入生产),它会起作用吗?或者我可以 "test" 我的生产环境以确保通知在我的应用程序发布到应用程序商店后可以正常工作吗?

如果您当时正在您的应用程序中测试推送通知,那么您可以轻松地通过调试模式检查为此目的,您需要开发 SSL 证书。如果您当时将应用上传到 App Store,则需要添加生产 SSL 证书(为了实时应用推送通知,您需要添加生产 SSL)。

Apple 使用不同的服务器向应用程序的开发版本和应用商店版本发送推送通知。开发版本称为 Sandbox。 iOS 根据其开发版本或生产版本维护与其推送服务器的持久连接。根据您的应用程序签署的证书(Dev 或 App Store/Ad Hoc),它将创建到相应推送服务器的持久连接。由于这两个服务器不同,它们将需要不同的 SSL 证书来建立与服务器的安全连接。

更多信息请参考:

https://developer.apple.com/library/ios/technotes/tn2265/_index.html