Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:如何/是否在新证书中包含现有私钥?_Iphone_Certificate_Private Key - Fatal编程技术网

iPhone:如何/是否在新证书中包含现有私钥?

iPhone:如何/是否在新证书中包含现有私钥?,iphone,certificate,private-key,Iphone,Certificate,Private Key,简短版本: 我是否有必要或甚至可能基于现有私钥生成新的分发证书,或者使用新私钥生成新证书对新应用程序和应用商店中现有应用程序的更新都没有害处 长版本: 在我看来,《iPhone开发者计划用户指南》中关于私钥和分发证书过期的信息存在冲突/误导 一方面,它说你应该用你的生命来保护你的私钥,并保留一份它的副本,这样如果你更换开发人员的机器,你就可以在新机器上使用它。我的理解是,无论如何,您必须保留一个真正的私钥(即,在请求第一个证书时为您的公司生成的第一个私钥),并永远使用它(至少,在将应用程序部署到

简短版本:

我是否有必要或甚至可能基于现有私钥生成新的分发证书,或者使用新私钥生成新证书对新应用程序和应用商店中现有应用程序的更新都没有害处

长版本:

在我看来,《iPhone开发者计划用户指南》中关于私钥和分发证书过期的信息存在冲突/误导

一方面,它说你应该用你的生命来保护你的私钥,并保留一份它的副本,这样如果你更换开发人员的机器,你就可以在新机器上使用它。我的理解是,无论如何,您必须保留一个真正的私钥(即,在请求第一个证书时为您的公司生成的第一个私钥),并永远使用它(至少,在将应用程序部署到应用商店后永远使用它)

另一方面,它告诉您分发证书在一年后过期,您只需在需要时请求新的分发证书即可。对我来说有意义的是,如果他们在后面加了一段话,开头是“因为在请求新证书时使用原始私钥对您来说至关重要,下面是您如何请求从预先存在的私钥创建的证书…”但是没有这样的段落,在搜索之后,我还没有听说过这样做的方法

关于stackoverflow有一篇密切相关的帖子:

这个问题的答案似乎表明,当分发证书丢失或过期时,您可以撤销它并创建一个新的分发证书,并且不会影响您当前在应用商店中的应用程序,并且您可以使用新证书继续发布新应用程序,而苹果不会说“嘿,您与以前不是同一家公司。”

这篇文章没有回答的一个关键问题是,是否可以使用不同的证书/密钥更新应用商店中的现有应用,而不是以前发布应用时使用的证书/密钥。但我在其他地方听说这也是可能的

因此,它可以归结为:苹果公司是否会让人觉得你的私钥真的是识别某个应用程序是否来自你的公司的东西?是否真的只有您的应用程序id加上您登录开发门户和itunesconnect的凭据才能识别您的公司和应用程序?

您可以生成一个新的私钥,并在不中断应用程序的情况下使用它。我从第一手经验中就知道了这一点——因为我丢失了密钥,不得不使其失效,然后重新生成一个新的密钥——之后,我需要对两个现有应用程序(使用旧密钥签名)的更新进行签名,并将更新提交到AppStore

没有中断-无论是在密钥被撤销后对现有应用程序的中断,还是在人们更新新的更新后对其的中断。在应用程序更新期间,应用程序中也没有丢失任何用户数据。总之,一切都是天衣无缝的


有一个主题正在讨论推送通知是否会继续正常工作(如果应用程序使用它们)。不过,我不能就此发表意见。

谢谢。我猜这意味着关于私钥如此关键的东西只是误导。也许这在过去更为关键,他们改变了工作方式,但没有修复文档。