iOS证书更新的正确方式

367

我的分发证书和所有的配置文件都将在6月7日过期。我该如何正确地更新它?我现在应该吊销它并请求一个新的吗?如果我这样做,那么所有我已上线的应用程序是否都会被下架?


41
因为某种原因,多年来没有使用这个账户,但我收到了关于这个回复的通知。我还没死(至少目前还没)。我想感谢StackOverflow上多年来帮助我的每一个人。我在14岁时写下了这个问题(现在已经21岁),自那以后,我一直在开发iOS应用,并将很快开始在苹果公司全职工作(这是我一直以来的梦想)。再次感谢所有为我提供帮助的人! - user1413558
太棒了!是啊,岁月匆匆!在没有在线QA之前,你甚至无法想象编程是如何完成的。干杯! - Fattie
6个回答

421

您的现有应用不会被下架。在应用商店中已上线的应用都不会受到影响。

一旦证书正式过期,唯一受到影响的是您签署代码的能力(从而无法构建新版本和提供更新)。

关于您的分发证书,一旦它过期,它将从成员中心的“证书、标识符和描述文件”部分中消失。如果您想在证书过期之前更新证书,请撤销当前证书,然后您将获得一个请求新证书的按钮。

关于配置文件,不必担心过期问题,继续使用即可。一旦过期,只需轻松地更新即可。

您可以放心,您已上线的应用程序在商店中不会受到任何影响。


8
谢谢,它们今天到期了。我顺利地续订了它们。 - user1413558
39
提醒其他人一句。我撤销了用于企业发布的证书,但没有获取续订证书的选项。它就这样消失了。应用程序无法安装,直到我使用新证书重新构建它。 - foldinglettuce
43
嘿,请不要撤销您的内部证书!!除非您能在重新启动/三天内更新所有应用程序,否则您的内部应用程序将无法工作。苹果允许您创建2个内部应用程序,以便它们可以重叠,然后您可以使用它更新新应用程序。不要撤销它。您唯一可以撤销的是App Store证书,而不会停止现有应用程序。 - mskw
19
严格来说,你不能“更新”证书,而是必须“生成新的证书”-请参阅http://developer.apple.com/library/ios/#documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificatesandProvisioningAssets/MaintainingCertificatesandProvisioningAssets.html#//apple_ref/doc/uid/TP40012582-CH20-SW2 - mklement0
4
自上次编辑此答案以来,有些事情发生了变化。如今,过期的证书不会从列表中消失,而是显示为“已过期”。吊销现有的分发证书将其从列表中删除,您无法获得请求新证书的按钮。 - S.L. Barth
显示剩余6条评论

371
当您的证书过期时,它会从“证书、标识符和配置文件”部分消失。没有“续订”按钮可以让您更新证书。您可以在证书过期之前撤销证书并生成新证书。或者您可以等待它过期并消失,然后生成新证书。在苹果的应用发布指南中:

替换过期的证书

当您的开发或发布证书过期时,请在Xcode中删除它并请求新证书。

当您的证书过期或被撤销时,使用已过期/已撤销证书的任何预配文件都将显示为“无效”。您不能使用这些无效的预配文件构建和签署任何应用程序。正如您所想象的那样,我宁愿在证书过期之前撤销和重新生成证书。

问:如果我这样做,那么所有我的现有应用程序都会被下架吗?

已经在App Store上的应用程序仍然可以正常运行。再次提醒,在苹果的应用分发指南中:

重要提示:重新创建开发或分发证书不会影响您提交到商店的应用程序,也不会影响您更新它们的能力。

所以...

问:我如何正确地更新它?

如上所述,没有更新证书。按照以下步骤撤销并生成新证书以及受影响的配置文件。这些说明已更新为Xcode 8.3和Xcode 9。

步骤1:撤销即将过期的证书

登录会员中心 > 证书、标识符和配置文件,选择即将过期的证书。注意证书的到期日期,然后点击“撤销”按钮。

Select the expiring certificate and click the Revoke button

步骤二:(可选)从钥匙串中删除已吊销的证书

如果您不想在系统中保留已吊销的证书,可以选择将其从系统中删除。不幸的是,在Xcode > 首选项 > 帐户 > [Apple ID] > 管理证书...中,“删除证书”功能似乎总是被禁用的,因此我们必须使用Keychain Access.app (/Applications/Utilities/Keychain Access.app)手动删除它们。

Optionally remove the revoked certificate using Keychain Access.app

按“登录”钥匙串和“证书”类别进行筛选。找到您在第一步中刚吊销的证书。

根据您刚吊销的证书,搜索“Mac”或“iPhone”。Mac应用商店分发证书以“第三方Mac开发者”开头,iOS应用商店分发证书以“iPhone分发”开头。

您可以根据团队名称、证书类型(Mac或iOS)和您在第一步中记录下的证书到期日期来定位已吊销的证书。

第三步:使用Xcode请求新证书

在Xcode>首选项>帐户> [Apple ID]>管理证书...下,单击左下角的“+”按钮,并选择与您刚吊销的同一类型的证书,让Xcode为您请求一个新证书。

Let Xcode request a new certificate for you in Xcode > Preferences > Accounts > Apple ID > Manage Certificates…

步骤4:更新您的预配文件以使用新证书

之后,返回会员中心>证书、标识符和配置文件>预配文件>全部。您会注意到任何使用已撤销证书的预配文件现在都显示为“无效”。

Notice that any provisioning profile that made use of the revoked certificate is now reflected as ‘Invalid’

点击任何现在为“无效”的个人资料,点击“编辑”,然后选择新创建的证书,再点击“生成”。重复此操作,直到所有配置文件都使用新证书重新生成。

Choose the newly created certificate, and click on Generate

步骤五:使用Xcode下载新的配置文件

提示:在使用Xcode下载新配置文件之前,您可能需要清除Mac上现有且可能无效的配置文件。您可以通过从~/Library/MobileDevice/Provisioning Profiles中删除所有配置文件来实现。

回到Xcode > Preferences > Accounts > [Apple ID],单击“Download All Profiles”按钮,要求Xcode从您的开发者帐户下载所有配置文件。

Click Download All Profiles for Xcode to download all the newly generated profiles


1
嗨,俊杰,谢谢! 我正在使用Xcode 7遇到了这个问题。 如果我撤销发布证书,使用AdHoc分发配置文件发布的应用程序会发生什么? 它们还能继续存在吗? 谢谢。 - Frade
3
根据苹果的说法,iOS分发证书(用于企业内部使用的应用程序),用户将不能再运行使用该证书签名的应用程序。您必须分发一个使用新证书签名的新版本应用程序。请参考https://developer.apple.com/support/certificates/。 - junjie
我在问关于AdHoc的情况,但可能是相同的情况。谢谢。 - Frade
3
如果应用程序在商店中发布并具有推送通知授权,那么在证书过期后,它是否仍能发送推送通知? - Otávio
4
@Otávio,这个问题涉及的应用程序分发证书与APNS证书是不同的。APNS证书不属于应用程序二进制文件的一部分。您可以撤销/更新APNS证书而无需更新应用程序二进制文件。推送服务器需要APNS证书。请注意不要改变原文意思。 - junjie
显示剩余3条评论

70

截至2020年1月和Xcode 11.3.1 -

  • 打开Xcode
  • 打开Xcode首选项(Xcode->首选项 或 Cmd-,)
  • 点击帐户
  • 在左侧,单击您的开发者ID
  • 在右下角,单击管理证书...
  • 在左下角,单击+(加号)旁边的箭头
  • 从菜单中选择Apple发布

Xcode将自动创建一个Apple发布证书,安装它到钥匙串访问,并更新Xcode的签名信息。

(注意:现在提供单个Apple发布证书,而不是以前的证书及等效物。)


1
好奇:我收到了苹果的邮件,要求我更新iOS分发证书。但是没有提供任何信息告诉我应该创建一个苹果分发证书。 - ekkescorner
这封电子邮件没有提到,@ekkescorner。它在在线文档中。 - leanne
9
这种重新创建证书的新工作流看起来太简单了;-) 再次感谢。 - ekkescorner
1
编辑您的预配文件,将此证书包含在内。 - vinayr

11

更新证书的方法非常简单。前往开发者会员中心,然后进入您的配置文件页面,查看哪些证书处于激活或未激活状态,选择未激活的证书并点击编辑按钮,然后点击生成按钮。现在您的证书已成功续签一年。谢谢。


@Shanmugasundharam,我们在创建了配置文件之后,是否应该将新版本推送到应用商店? - Niraj Paul
这仍然需要一个从Xcode生成的.csr文件,至少根据我所发现的情况是这样的。 从developer.apple.com/account进入“证书、ID和配置文件”->“配置文件”。我看到了一个发布配置文件和一个测试配置文件。两者在“过期”列下都显示“无效”。我点击ReleaseProfile,然后点击“编辑”。在“证书”下面,它说“没有可用的证书”,并有一个“创建证书”的按钮。我点击它。然后我选择“iOS分发”和“继续”。现在,为了创建它,我需要“选择文件”,也就是上传一个CSR文件,我认为只能从xcode生成。 - Brent212
发现在Linux中,我可以通过运行以下命令来简单地生成CSR: **** openssl req -nodes -newkey rsa:2048 -keyout private_key.key -out cer_sign_request.csr **** 真不敢相信有这么多关于“如何生成证书CSR”的答案都需要使用Xcode,却没有提到这个简单的解决方案,它不需要我打开旧的Mac并启动笨重的IDE。 - Brent212
@NirajPaul 您的应用程序仍将适用于从商店下载它的用户,如果您从商店下载它,它甚至也会对您起作用。这只会影响使用配置文件将应用程序放置在设备上的用户(即您从xCode构建并安装它)。 过去、现在和未来的用户都不会注意到任何不同之处。 https://dev59.com/w2w05IYBdhLWcg3wnjLC#7128502 来源于此 - Shanmugasundharam

3

大家好..

我找到了更新IOS证书的最佳方法,步骤非常简单。每个人都可以轻松更新,不需要任何疑问。

IOS证书更新/证书更改步骤:

1) 打开钥匙串访问。

2) 单击“显示证书”。

3) 钥匙串访问 => 证书助手 => 从证书颁发机构请求证书。

4) 打开开发者控制台 => 帐户 => 证书IDS和配置文件。

5) 单击证书+图标并创建新=> ios Distribution(应用商店和Ad Hoc)。 然后单击继续按钮。

6) 选择并上传证书 => 然后通过单击下载按钮下载已上传的证书。

7) 然后编辑证书,然后更新最新上传的证书。

8) 打开Xcode=>单击签名和功能=>下载配置文件=>选择配置文件新上传的证书。

参考视频链接https://youtu.be/v19ZoFa1cJs


0

这是一个非常有帮助的线程,我按照@junjie提到的相同步骤进行了操作,但对我来说出现了一些奇怪的问题,以下是我所做的步骤。

  1. 进入开发者门户并撤销即将过期的证书。
  2. 进入XCode6.4,在账户设置中,证书仍然显示为有效,我感到很疯狂。
  3. 然后我打开了XCode7,在那里证书显示为“重置”按钮,而不是创建按钮,我点击了重置按钮,稍后在门户中我能够看到扩展证书。这就是苹果关于重置按钮的说法:

如果Xcode检测到签名标识存在问题,则会在“账户”首选项中显示适当的操作。如果Xcode显示“创建”按钮,则表示成员中心或您的Mac上不存在签名标识。如果Xcode显示“重置”按钮,则表示签名标识在您的Mac上无法使用,例如缺少私钥。如果单击“重置”按钮,Xcode将撤销并请求相应的证书。

我尝试使用它创建了一个Appstore的ipa文件,只是为了测试,结果很好,所以我得救了,但仍然不确定发生了什么。可能是我在Mac上配置了多个帐户,我不知道。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接