我应该为dev / production iOS推送通知证书使用相同的CSR吗?

时间:2012-08-16 11:28:58

标签: iphone objective-c ios xcode apple-push-notifications

更新

我发现在为iOS推送通知创建证书时,我可以为开发和生产提交相同的CSR。

对于单个应用程序,我需要创建2个证书(开发/生产),因此对于10个应用程序,我需要创建20个证书 - 这是证书管理的噩梦和污染我的钥匙串,所以我想通过提交相同的CSR(因此相同的私钥)..更容易维护的东西。

我想知道是否有任何缺点,您是否也采取相同的方式来减少密钥/证书管理的工作量?

3 个答案:

答案 0 :(得分:21)

您不一定要使用不同的私钥进行开发和生产,但您应该,尤其是在大型团队或外部开发人员中工作时。

每个必须测试通知代码的开发人员都需要访问开发证书的私钥。如果对生产证书使用相同的密钥,则还可以授予他们在生产系统中发送通知的权限。这一切都归结为信任 - 您是否相信您团队中的每个开发人员都不会使用密钥来与您的付费客户一起玩,现在和永远?

如果你是独自工作,或者你真的相信你团队中的每个人都会完全继续使用一把钥匙。但想想如果有人误用钥匙会产生的后果。

答案 1 :(得分:0)

看这里ProvisioningDevelopment

  

您必须为沙箱(开发)环境和生产环境获取单独的证书。证书与作为推送通知的接收者的应用程序的标识符相关联;此标识符包括应用程序的包ID。为其中一个环境创建配置文件时,必需的权利会自动添加到配置文件中,包括特定于推送通知的权利。这两个配置文件称为开发和分发。分发配置文件是将您的应用程序提交到App Store的要求。

答案 2 :(得分:0)

重新描述shannoga的答案。虽然您可以在开发阶段使用相同的证书,但每个应用程序在提交到appstore时都需要适当的证书。最好是在两个阶段为应用程序创建适当的证书,以确保符合Apples标准。

仅仅因为某些事情有效,并不是正确的。通过在开发阶段正确维护证书,当您必须转换到生产时,它将更容易,因为您的代码不会依赖于捷径。