更新:
我发现在为 iOS 推送通知创建证书时,我可以为开发和生产提交相同的 CSR。
对于单个应用程序,我需要创建 2 个证书(开发/生产),因此对于 10 个应用程序,我需要创建 20 个证书 - 这是证书管理的噩梦并污染我的钥匙串,所以我想通过提交相同的 CSR(因此相同的私钥)..只是更容易维护这些东西。
我想知道是否有任何缺点,您是否也在采取同样的方式来减少密钥/证书管理的工作量?
更新:
我发现在为 iOS 推送通知创建证书时,我可以为开发和生产提交相同的 CSR。
对于单个应用程序,我需要创建 2 个证书(开发/生产),因此对于 10 个应用程序,我需要创建 20 个证书 - 这是证书管理的噩梦并污染我的钥匙串,所以我想通过提交相同的 CSR(因此相同的私钥)..只是更容易维护这些东西。
我想知道是否有任何缺点,您是否也在采取同样的方式来减少密钥/证书管理的工作量?
您不一定必须使用不同的私钥进行开发和生产,但您应该使用,尤其是在大型团队中或与外部开发人员一起工作时。
每个必须测试通知代码的开发人员都需要访问开发证书的私钥。如果您对生产证书使用相同的密钥,您还可以授予他们在生产系统中发送通知的权限。这一切都归结为信任——您是否相信您团队中的每个开发人员都不会使用密钥对您的付费客户进行恶作剧,无论是现在还是永远?
如果您是独自工作,或者如果您真的完全信任团队中的每个人,请继续使用单个密钥。但是想想如果有人误用了钥匙的后果。
您必须获得沙盒(开发)环境和生产环境的单独证书。证书与作为推送通知接收者的应用程序标识符相关联;此标识符包括应用程序的捆绑 ID。当您为其中一种环境创建配置文件时,必要的权利会自动添加到配置文件中,包括特定于推送通知的权利,. 这两个配置文件称为开发和分发。分发配置文件是将您的应用程序提交到 App Store 的要求。
改写shannoga的答案。虽然您可以在开发阶段使用相同的证书,但每个应用程序在提交到应用商店时都需要适当的证书。最好在这两个阶段为应用程序创建适当的证书,这样您就可以确保满足 Apple 标准。
仅仅因为某事有效,并不能使它正确。通过在开发阶段正确维护证书,当您必须过渡到生产时,它会变得更容易,因为您的代码不会依赖捷径。