ios 证书与 profile

本地打包没啥问题 ,因为苹果已经各种自动化了

在jenkins 打包确实难到我了 基本上把能尝试的方法都试了一个遍

现在我是把账号都删了 证书也都删了 profile的文件夹也清空了

然后重新来尝试

打包用的是企业版的发布证书

报错信息是

Your account already has a signing certificate for this machine but it is not present in your keychain. To create a new one, you must first revoke the existing certificate

您的帐户已经有这台机器的签名证书,但它不在您的密钥链中。要创建一个新证书,必须先撤销现有证书

一般我就手贱去点revoke 了 ,

但是查了stackoverflow ,
指向了这个链接

维护您的签名身份和证书

代码签署您的应用程序可让用户相信您的应用程序已由Apple知道的源代码创建,并且尚未被篡改。 所有应用程序必须经过代码签名和配置才能在设备上启动,使用某些服务,发布测试或上传到iTunes Connect。 代码签名使用加密技术对您的应用和安装程序包进行数字签名。
您创建的
签名身份 - 存储在您的keychain中
证书 - 存储在您的 developer account中
以签署并提供您的应用程序。

有关用于开发,测试和发布应用程序的证书类型,请参阅“深度签名证书”。

关于签名身份和证书

代码签署您的应用程式可让操作系统识别谁签署了您的应用程式,并验证您的应用程式自签署之后尚未修改。您的应用程序的可执行代码受其签名保护,因为如果应用程序包中的任何可执行代码发生更改,则签名变为无效。请注意,图像和nib文件等资源未签名;因此,这些文件的更改不会使签名无效。

代码签名还允许您的应用程序的签名被信任的来源删除和重新签名。例如,您在将应用程序上传到iTunes Connect之前签名,但是Apple会在将其发布给客户之前重新签名。此外,您可以重新签名并将完整测试的应用程序开发版本提交到商店。

Xcode使用您的签名身份在构建过程中签署您的应用程序。该签名身份由Apple发布的公私钥匙组成。
公钥 - 私钥对存储在您的钥匙串中,由密码函数用于生成签名。
存储在开发者帐户中的证书只包含公钥。
中间证书也需要在您的钥匙串中,以确保您的证书由证书颁发机构颁发。

签名要求您同时拥有钥匙串中的签名身份和中间证书。当您安装Xcode时,Apple的中间证书将添加到您的钥匙串中。您使用Xcode创建您的签名身份并签署您的应用程序。您的签名身份被添加到您的钥匙串,相应的证书将添加到您的开发者帐户。

签名身份用于签署您的应用或安装程序包。

开发证书将您作为团队成员识别为开发配置文件,允许您在设备上启动应用程序。

发布证书在发布配置文件中标识您的团队或组织,并允许您将应用程序提交到商店。

只有团队代理或管理员才能创建发布证书。

对于一个组织,其他团队成员在他们的Mac电脑上安装了自己的签名身份。开发者帐户包含所有组合团队资产的存储库,但不存储任何私钥。

这里写图片描述

因为私钥本地存储在您的Mac上,请保护您的帐户密码。
保持公钥 - 私钥对的安全备份。
如果私钥丢失,您必须创建一个全新的身份来签名。
更糟糕的是,如果别人有你的私钥,那个人可能会冒充你。

在错误的手中,有人可能会尝试发布包含恶意代码的应用程序。
不仅可能导致应用程序被拒绝,也可能意味着您的开发人员凭据可能被Apple撤销。 私钥只存储在钥匙串中,如果丢失则无法检索。

如果您要使用另一台Mac代码签署您的应用程序,则可以在用于创建证书的Mac上导出您的开发人员配置文件,并将其导入另一台Mac。

您还可以使用此功能在多个团队代理之间共享发布证书。
(团队成员不应共享开发证书。)

查看签名身份和配置文件

要验证或排除您的证书和配置文件,请使用Xcode帐户首选项进行查看。 虽然Xcode为您管理这些资产,但您可能偶尔需要创建或撤销特定证书并下载配置文件。

查看帐户详细信息

Xcode > Preferences>Accounts.

这里写图片描述

在出现的对话框中,查看您的签名身份和配置文件。 如果证书旁边显示“创建”按钮,那么它尚未创建。 如果在配置文件旁边显示“下载”按钮,则不在您的Mac上。

这里写图片描述

创建签名身份

在您可以对应用程序进行代码签名之前,您需要创建开发证书,然后创建一个将应用程序上传到iTunes Connect的发布证书。您可以使用Xcode创建所有类型的证书和签名身份。 Xcode为您创建,下载和安装您的签名身份。

所有团队成员都可以创建自己的开发证书。只有团队代理或管理员才能创建发布证书。只有团队代理可以创建开发人员ID证书。如果您有组织成员资格,请阅读管理您的开发者帐户团队,以了解团队代理人代表团队成员执行的团队角色和任务的描述。

Xcode在需要时为您创建开发证书。例如,当您将项目分配给团队或创建团队配置配置文件时,如配置身份和团队设置中所述,Xcode会创建您的开发证书并将其添加到团队配置配置文件中。因此,您通常使用Xcode首选项窗口创建发布证书。

创建签名身份

在Xcode首选项窗口中,单击帐户。

选择您要使用的团队,然后单击查看详细信息。

这里写图片描述

在出现的对话框中,单击要创建的证书类型行中的“create”按钮。

如果禁用“创建”按钮,则不允许创建该类型的签名身份。 有关各类证书的说明,请参见表14-2。

这里写图片描述

创建签名身份后,“create”按钮将消失。

 要返回到帐户首选项,请单击Done。

您现在可以导出您的签名身份以创建备份,如导出您的开发人员配置文件中所述。

验证你的步骤

验证您的证书是否正确并可以使用。证书必须有效,才能签署您的应用程序和Mac应用程序签署安装程序包。

您首次验证您的证书时,请在Xcode,Keychain Access和开发人员帐户中进行验证,以了解他们所在的位置以及它们在每个工具中的显示位置。钥匙串访问和您的开发者帐户显示您的签名身份和证书的到期日期。之后,您将使用钥匙串访问进行故障排除。
验证使用您的开发者帐户

您的开发人员帐户应显示与Xcode和Keychain Access中相同的证书,因为它存储公钥。

使用您的开发者帐户验证签名证书

登录developer.apple.com/account,然后单击证书,ID和配置文件。

在侧栏的证书部分中,根据您要验证的证书类型,选择开发或生产。

证书的类型和到期日期应与您在Keychain Access中查看的信息相匹配。

注意:钥匙串中的证书名称与Xcode和您的开发者帐户中显示的证书类型不同。 对于工具中出现的证书名称和类型之间的映射,请参见表14-2

验证使用钥匙串访问

钥匙串访问显示每个签名身份的私钥和公钥。

使用Keychain Access验证签名身份

 启动钥匙串访问位于/ Applications / Utilities。

 当您使用Xcode创建开发或发布证书时,证书将自动安装在您的登录钥匙串中。

 在左窗格中,在“钥匙串”部分中选择“登录”,然后在“类别”部分中选择“证书”。

 您的开发和发布证书将显示在“钥匙串访问”中的“证书”类别中。 开发证书的名称从iOS,tvOS和watchOS应用程序的“iPhone开发人员”以及Mac应用程序的“Mac开发人员”开始,其后是您的姓名(开发证书属于一个人)。

这里写图片描述

重要:将您的个人钥匙扣项目保存在您的登录Keychains中。 如果您的证书没有出现在登录钥匙串中,它可能不是默认钥匙串。 Keychains Access中的Keychains列中,粗体显示默认钥匙串。 如果默认钥匙串未登录,请在Keychains列中选择登录,然后选择“文件”>“创建钥匙串”登录“默认”。

验证证书左侧是否有三角形。

如果您单击证书名称旁边的公开三角形,将显示您的私钥。 如果显示三角形没有出现,您将丢失您的私钥。 (阅读无代码签名身份找到解决此问题。)

这里写图片描述

验证证书是否有效。

 当您选择证书时,包含复选标记的绿色圆圈将出现在证书列表上方的钥匙串访问中。 复选标记旁边的文本应为“此证书有效”。

故障排除

如果Xcode和Keychain Access中显示的证书与您的开发者帐户中的证书不匹配,请阅读证书问题,以获取有关如何解决差异的信息。

创建其他开发人员ID证书

开发人员身份证件用于在Mac App Store之外发布您的应用程序。 使用Xcode创建您的Developer ID证书以及其他类型的证书,如创建签名身份中所述。 如果您想要更多的开发人员ID证书,您可以使用开发人员帐户创建每种类型的五种。

重要提示:只有团队代理可以创建其他开发人员ID证书

创建开发人员ID证书

 登录developer.apple.com/account,然后单击证书,ID和配置文件。

 在侧栏中,从弹出菜单中选择“OS X”,然后在“证书”下选择“全部”。

 点击右上角的添加按钮(+)。

 在生产下选择开发人员ID,然后单击继续。

这里写图片描述

选择证书类型 - Developer ID Application or Developer ID Installer,然后单击继续。

这里写图片描述

按照说明使用钥匙串访问创建证书签名请求(CSR),然后单击继续。

 单击选择文件。

 选择CSR文件(使用.certSigningRequest扩展名),然后单击选择。

 单击继续。

 点击下载。

 证书文件显示在您的“下载”文件夹中。

要将开发人员ID证书安装在钥匙串中,请双击下载的证书文件(扩展名为.cer)。 开发人员ID证书出现在钥匙串访问中的我的证书类别中。

安装缺少的中级证书颁发机构

要使用您的证书,正确的中间证书需要在您的钥匙串中。中间证书确保您的证书是由受信任的来源发出的。当您安装Xcode时,中间证书(名为Apple Worldwide Developer Relations Certification Authority)将安装在系统钥匙串中。 Developer ID证书的中间证书称为Developer ID Certification Authority。如果您不小心删除中间证书,则可以重新安装。

首先尝试在Xcode中下载配置配置文件,如下载Xcode中的配置配置文件所述,以安装缺少的中间证书。如果没作用,请下载并安装缺少的中间证书。

安装缺少的中间证书

转到http://www.apple.com/certificateauthority。

在Apple中级证书下,单击您缺少的中间证书的链接。

具有.cer扩展名的证书文件显示在您的“下载”文件夹中。

这里写图片描述

双击证书文件将其安装在系统钥匙串中

导出和导入证书和配置文件

Xcode为您创建证书和配置文件后,导出它们以创建所有资产的备份。例如,您将资产转移到您用于开发的另一台Mac,或者如果私钥丢失则修复证书。在Xcode中下载您的个人资料不会取代缺少的私钥。而是从备份导入证书和配置文件。

导出文件(称为开发者资料)包含以下团队资产:

开发证书

发布证书

配置配置文件

您还可以导出所选证书以与其他团队成员共享。在这种情况下,导出文件只包含您选择的证书。
导出您的开发人员资料

由于开发人员配置文件表示您的凭据来签署和提交应用程序到商店,Xcode加密和密码保护导出的文件。

导出您的开发者帐户资产

选择Xcode>首选项>account>*删除按钮右侧的齿轮图标>“导出开发者帐户”。

这里写图片描述

在“另存为”字段中输入文件名,并在“密码”和“验证”字段中输入密码。

该文件被加密和密码保护。

这里写图片描述

单击保存。

 文件保存到您使用.developerprofile扩展名指定的位置。

 在出现的对话框中,单击确定。

导出所选证书

要导出几个证书并排除配置文件,请在详细信息对话框中选择证书。

导出所选证书

 选择Xcode>首选项。

 点击窗口顶部的“帐户”。

 选择您要查看的团队,然后单击查看详细信息。

 在“签名身份”表中按住Control键并单击要导出的证书,然后从弹出菜单中选择“导出”。

这里写图片描述

在“另存为”字段中输入文件名,并在“密码”和“验证”字段中输入密码。

 该文件被加密和密码保护。

 单击保存。

 文件保存到您使用.p12扩展名指定的位置。

或者,您可以使用security(1)命令行实用程序导出证书。

导入您的开发人员资料

您导入开发人员配置文件以恢复丢失的私钥或何时切换到另一台Mac。

导入您的开发者帐户资产

 选择Xcode>首选项。

 点击窗口顶部的“帐户”。

 单击左下角的“操作”按钮(齿轮图标),然后从弹出菜单中选择“导入开发人员帐户”。

这里写图片描述

找到并选择包含开发人员配置文件的文件,然后单击打开。

该文件应该有.developerprofile扩展名。

输入用于加密文件的密码,然后单击“确定”。

在出现的对话框中,单击确定。

从钥匙扣中删除签名身份

如果钥匙串无效,不再使用(可能属于您之前的团队成员),或者缺少私钥,因此不可用,您将从钥匙串中删除签名身份。如果您缺少私钥并备份您的签名身份,请在删除签名身份后立即导入您的开发人员个人资料,如“导入您的开发人员资料”中所述。如果由于某些其他原因删除了签名身份,请阅读重新创建证书和更新相关配置文件配置文件中的所有步骤,以避免以后出现代码签名问题。

警告:除非您从开发人员档案文件导入私钥,否则无需重新创建私钥。没有私钥,您无法使用证书签署应用程序。

从钥匙串中删除签名身份

 启动钥匙串访问(位于/ Applications / Utilities)。

 在类别部分,选择键。

 单击所有私钥的披露三角形以显示关联的证书。

选择与要删除的证书相关联的所有私钥。

关于如何通过Keychain Access中出现的名称来识别证书的类型,请参见表14-2。

为每个私钥选择相应的公钥。

按删除(在键盘上),当出现对话框时,单击删除。

在类别部分中,选择证书。

选择要删除的所有证书。

证书不会有私钥。

按删除(在键盘上),当出现对话框时,单击删除

吊销证书

当您不再需要证书时,或者由于其他代码签名问题而需要重新创建证书时,您将撤销证书(请参阅可能发生的问题类型的“证书问题”)。如果您怀疑他们已被入侵,您也将撤销证书。如果您是组织的团队管理员,则可以撤销不再适用于您的项目的团队成员的开发证书。撤销证书可能会使配置配置文件无效,因此请阅读重新创建证书和更新相关配置配置文件中的所有步骤,以避免以后出现代码签名问题。

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

撤销特权

表14-1列出了每个团队成员可以撤销的证书类型。个人开发商是他们一人团队的团队代理,这意味着他们有权撤销所有类型的开发和发布证书,除非指定。对于组织,任何团队成员都可以撤销自己的开发证书,但是只有当他或她是团队代理或管理员时,团队成员才能撤销发布证书

您不能使用您的开发者帐户撤销开发人员ID或传递类型ID证书。相反,请通过product-security@apple.com向Apple发送请求,以撤销这些类型的证书。

如果苹果公司撤销您的开发人员身份证书,用户将无法再安装已使用该证书签署的应用程序。您可以使用开发人员帐户创建其他开发人员ID证书,而不是撤销开发人员ID证书,如创建其他开发人员ID证书中所述。
使用Xcode重置证书

如果Xcode检测到签名身份的问题,则会在“帐户”首选项中显示适当的操作。如果Xcode显示“创建”按钮,则您的开发者帐户或Mac上不存在签名身份。如果Xcode显示重置按钮,则签名身份在Mac上不可用 - 例如,它缺少私钥。如果您单击重置按钮,Xcode将撤消并重新创建相应的证书。

否则,您可以使用开发人员帐户撤销证书,如使用开发者帐户撤销证书中所述。如果您是团队管理员,请使用开发者帐户撤销团队成员开发证书。

使用Xcode重置证书

选择Xcode>首选项,然后单击窗口顶部的“帐户”。

选择您的团队,然后单击查看详细信息。

在出现的对话框中,单击要撤销并重新创建的签名身份的“操作”列中的重置按钮。

这里写图片描述

在出现的对话框中,单击完成。

使用开发者帐户撤销证书

使用开发者帐户撤销属于您的团队的所有类型的证书。 例如,撤销不再需要或想要重新创建的其他团队成员或分发证书的开发证书。

使用开发者帐户撤销证书

 登录developer.apple.com/account,然后单击证书,ID和配置文件。

 在证书下,选择全部。

 选择要撤销的证书,然后单击撤消。

这里写图片描述

在出现的对话框中,单击撤消。

更换已过期的证书

当您的开发或分发证书过期时,删除它并在Xcode中创建一个新的证书。按照相同的步骤重新创建证书,如重新创建证书和更新相关配置文件中所述。使用钥匙串访问或您的开发者帐户查看签名身份和证书的到期日期,如验证使用开发人员帐户和验证使用钥匙串访问中所述。
重新创建证书和更新相关的配置文件

重新创建证书和更新相关的配置文件并不是一件简单的任务,因为这些资源是相关的,并且位于您的Mac和开发者帐户中。如果您撤销证书,则包含该证书的任何配置文件都将无效。 Xcode将根据需要为您重新生成配置配置文件,但您可以自行管理其他类型的配置配置文件。本节将介绍完全恢复代码签名资产的所有步骤。

您可能需要重新创建证书和更新相关配置配置文件的几个原因。例如,如果:

您不小心从钥匙串中删除了一个或多个私钥,并且没有从中恢复的备份

您要删除撤销或过期的证书及其相关的配置文件

您要在加入其他团队之前,先删除先前团队的所有证书和配置文件

您可以使用多台Mac计算机进行开发或属于多个团队,并且您希望为新项目设置Mac

但是,如果您遇到证书,配置或构建问题,请先执行这些步骤,先检查证书问题,因为删除您的证书是不可逆转的。

选择要重新创建的证书。例如,如果您在设备上运行应用程序时遇到问题,则可能只需要重新创建开发证书。请记住,重新创建分发证书不会影响您的开发证书或开发配置文件。类似地,重新创建开发证书不会影响您的分发证书或分发配置配置文件。

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

重新创建证书并更新相关的配置文件

撤销证书使用您的开发者帐户,如撤销证书中所述。

包含撤销证书的配置配置文件无效。例如,如果您撤消了一个团队成员开发证书,则包含该证书的所有开发配置配置文件将变为无效:

这里写图片描述

必要时,从您的钥匙串中删除这些证书的签名身份,如从钥匙扣中删除签名身份所述。

如果您撤销自己的开发或发布证书,请从钥匙串中删除相应的签名身份。否则,证书的所有者应删除其Mac上的签名身份。

(可选)使用Xcode创建新证书,如创建签名身份中所述。

如果您撤消开发证书,Xcode将在“常规”窗格上的“团队”弹出式菜单下方显示警告消息。单击修复问题按钮创建开发证书,并重新生成该Xcode项目使用的团队配置配置文件,以使其在开发者帐户中不再显示为无效。

删除或重新生成包含已撤消证书的其他类型的配置文件,如“开发人员帐户中的编辑配置文件”中所述。

Xcode不会自动重新生成使用您的开发者帐户创建的分发配置配置文件或自定义开发配置配置文件。

如果您更改开发人员帐户中的配置文件,请在Xcode中下载配置文件,如从开发者帐户下载配置配置文件中所述。

如有必要,请在设备上安装修改后的配置配置文件,如“验证和删除设备配置文件”中所述。

证书在主Mac上修复后,导出您的开发人员配置文件,如导出您的开发人员配置文件中所述。

如果您正在修复多台Mac电脑,请在其他Mac电脑上执行以下附加步骤:

从您的钥匙串中删除签名身份,如从“钥匙扣删除签名身份”中所述。

按照您在原始Mac上创建的“导入您的开发人员配置文件”中所述导入您的开发人员配置文件。

您的签名证书

存储在钥匙串中的代码签名身份代表您的Apple开发人员计划开发和分发凭证。熟悉这些证书的名称,因为它们出现在菜单中,以及证书类型,因为它们显示在列表中,以便您不会意外地将其从钥匙串或开发人员帐户中删除。

有不同类型的签名证书用于不同的目的。开发证书标识您团队中的一个人,并用于在设备上运行应用程序。在开发和测试期间,您需要签署在设备上运行的所有iOS,tvos和watchOS应用程序,以及使用某些应用程序服务(如iCloud和Game Center)的Mac应用程序。

分发证书标识团队,并用于将您的应用程序提交到商店或Mac应用程序,将其分发到商店外。如果您是组织,则可以由有权提交应用程序的团队成员共享分发证书。有多种分发证书,每种都有一种具体的分配方式。不同的代码签名身份也用于Mac应用程序。

签名证书由苹果公司授权。您必须将Apple提供的中间证书安装在系统钥匙串中才能使用您的证书;否则无效。 Apple提供的中间证书由Xcode安装:

苹果全球开发者关系认证机构。用于验证开发和存储证书。

开发商ID认证机构。用于验证开发人员身份证书以在Mac App Store之外分发。

有关证书类型,钥匙串访问中出现的证书名称和每个证书的目的之间的映射,请参见表14-2。

您的开发人员帐户显示每个证书的团队名称(或人员名称)和类型。 Xcode帐户首选项在“签名身份”列中显示证书的类型。钥匙串访问和Xcode中的代码签名身份构建设置弹出菜单显示证书的名称。

每个团队成员有一个Mac或iOS开发证书。因此,开发证书名称包含该人的姓名。所有其他类型的证书都由团队拥有(由多个团队成员共享),因此包含团队名称。个人开发者是一个单人团队,所以你的名字和团队名称是一样的。

iOS开发
iPhone开发人员:团队成员名称
用于在设备上运行iOS,tvos或watchOS应用程序,并在开发过程中使用某些应用程序服务。
iOS分发
iPhone发布:团队名称
用于在指定的设备上分发您的iOS,tvOS或watchOS应用程序进行测试或将其提交到商店。

概括

在本章中,您了解了如何在应用程序的整个生命周期内维护您的开发和分发签名身份。 您还学习了如何识别Xcode,Keychain Access和开发人员帐户中的不同类型的证书。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值