在新的Macintosh安装中,Xcode 4出现“未找到有效签名身份”错误,涉及到配置文件。

210

我曾经使用一台Macintosh电脑和Xcode 4开发iPhone应用程序。现在,我有了一台新的Macintosh电脑,并重新安装了所有软件。

当我打开旧Mac上构建的Xcode项目时,我无法在配置为开发iPhone的设备上运行应用程序。
Xcode 4组织者告诉我我的签名身份验证未找到,这是关于我的配置文件的。

我猜这与我之前在旧Mac上生成的.certSigningRequest文件有关(我有该文件的备份),但在新Mac上我需要做什么呢?

另一个奇怪的事情是,即使刷新并输入了我的配置门户登录名和密码,我也看不到我的5个现有配置文件(在Apple配置门户上定义):

organizer devices screenshot


4
你如何将身份信息移植到其他设备上?最简单的方法是使用窗口底部显示的导入/导出按钮 — 从一个可用系统中导出,然后导入到新的系统中。这应该可以确保复制所有证书和个人资料。 - Tommy
2
但是如果旧计算机有坏的硬盘(并且没有备份)或已经重新格式化,那该怎么办? - nonopolarity
实际上,将问题作为评论提出是一个不好的主意。(在StackOverflow上提出一个全新的问题或者找到现有的问题才是正确的做法。) - Warren P
16个回答

222

自 Xcode 4.2 及以后的版本(包括 Xcode 4.6),有一种更好的方法可以将您的整个开发者配置文件迁移到新机器上。在现有机器上,启动 Xcode 并执行以下操作:

  1. 打开组织器(Shift-Command-2)。
  2. 选择设备选项卡。
  3. 在 LIBRARY 下方的左上角选择 Developer Profile,这可能位于 library 下的标题或名为 TEAMS 的标题下面。
  4. 在窗口左下角附近选择导出。Xcode 会要求您选择文件名和密码。

Xcode 4.4 版编辑:

对于 Xcode 4.4,在第 3 步中选择 LIBRARY 下的 Provisioning Profiles。然后使用鼠标或 Command-A 选择您的预配资料。

此外,苹果正在改进他们管理 Xcode 的这个方面的方式,并且一些用户报告称,右下角的刷新按钮就足够了。因此,请先尝试单击“刷新”,如果这样不起作用,请执行导入/导出序列。

Xcode 4.6 的图片由 WP 添加:

输入密码以保护开发者资料截图

Xcode 5.0 或更新版本的编辑:

  1. 打开 Xcode -> 首选项('Command' + ',')
  2. 从列表中选择 Apple ID
  3. 点击窗口左下角附近的设置图标,然后选择导出帐户... Xcode 会要求您选择文件名和密码。

在新机器上启动 Xcode 并导入您上面导出的配置文件。效果很好。

Xcode 5.0 的图片由 Ankur 添加:

适用于Xcode 5或更高版本


20
第三步中,我在LIBRARY下没有看到“Developer Profile”选项。相反,我需要在TEAMS下选择<我的团队名称>。 - Steve Onorato
9
我一直收到“未找到有效签名身份”的报错信息! - RGML
7
我有两台电脑用于开发。我从其中一台电脑上导出了配置文件,但是我无法从“组织者” > “库” > “配置文件”页面导入它。我必须前往“库” > “团队” > “我的用户ID”页面才能导入开发者配置文件。 - GLaDOS
7
苹果正在“改进”这些东西,但每向前迈进一步就会带来新的痛苦。我仍然一遍又一遍地抓狂…… - brainray
4
我为XCode 4.6的用户贡献了一张图片,以帮助更清晰地展示。苹果公司为什么不让这个变得简单呢? - Warren P
显示剩余6条评论

61

今天我遇到了类似的问题。不幸的是,我的硬盘坏了,所以我无法执行接受答案中提到的迁移操作。我只能按照以下步骤进行:

  1. 连接至苹果开发者成员中心,然后进入iOS临时门户。
  2. 撤销我的证书。
  3. 通过提供新的私钥和公钥创建一个新的证书。
  4. 删除所有先前的预配文件并创建新的预配文件。
  5. 下载新的预配文件,并通过将它们拖到Dock中Xcode图标上来安装。

这个帖子也提到了相同的操作。


谢谢,这对我很有用(我没有旧的Mac可以传输任何东西)。 - Jamie G
1
谢谢@tiguero.. 我的硬盘也崩溃了.. 在从硬盘中恢复数据后,我一直在苦苦寻找答案。但是当我使用钥匙串和预配门户重新创建证书时,问题就解决了。注意:我们可能需要修改预配文件并将新证书添加到其中,然后重新下载和安装所有文件。祝编码愉快.. 我希望这能帮助正在寻找答案的人。 - Apple_iOS0304
1
这是非常重要的知识。(在创建新证书之前,撤销先前的证书并不直观,但对于苹果来说,这绝对是良好的操作实践。如果您丢失了密钥,这将使您的生活变得困难。) - Warren P
如果您撤销了用于签署正在生产中的应用程序的证书,这是否会在某种程度上影响该应用程序? - Mani
2
@EmmanuelAy 如果您的iOS开发者计划会员资格有效,则撤销您的证书不会影响App Store上现有的应用程序。请在此处查看:https://developer.apple.com/support/technical/certificates/ - tiguero

17

确认您的证书在“登录”钥匙串中。如果您找不到它,请高亮显示“登录”钥匙串并搜索它。然后将证书拖动到“登录”一词上方,关闭并重新打开Xcode,完成。


2
非常感谢,除了我的证书在系统中而不是登录中之外,一切都看起来很正确。当我把它们移动过去后,一切都像魔法般地运行了! - pat
哦,简单的点击并不像https://developer.apple.com/ios/manage/overview/index.action所描述的那样有效。应该手动选择位置。 - sergtk

9

您需要从旧的 Mac 上复制私钥和证书。在旧的 Mac 上打开 Keychain Access 并查看登录密钥串中的 Keys 类别:密钥应该在那里。您需要导出公钥和私钥,然后将 yourkey.pemyourkey.p12 复制到新的 Mac 上。

使用 Keychain Access 导入它们可能会失败,至少在 10.6 版本下;您可以使用以下命令代替:

security import yourkey.p12
security import yourkey.pem

钥匙串访问有时无法导出或导入私钥。您可以使用security命令行实用程序代替它。我保证它有效。 - LaC
@LaC:我可以在新的 Mac 上删除一些现有条目吗? - Oliver
您可以删除不再需要的条目。如果您不确定是否需要它们,最好不要删除它们。 - LaC
2
您应该使用组织者的导出/导入功能来迁移您的开发人员资料。请查看我刚才发布的答案。 - Steve Liddle
我尝试了所有其他步骤,但它们都没有起作用。我尝试了这个步骤,.p12 导入正常,但 .pem 说已导入,但当我进入钥匙串时它们不显示,并且 xCode 仍然显示无效的签名证书... 有什么建议吗? - Michael Rowe
我有一台非常老的Mac(OSX 10.6.8)和一台新的Mac(OSX 10.8.4)。我只是使用了旧机器上钥匙串访问中标准的私钥导出功能,然后在新机器上成功导入。之后,在XCode组织者中的移动配置文件都显示为“有效”。 - Brad

9

针对错误

未找到有效的签名身份

请查看苹果公司发布的步骤来解决此问题。

关于在iOS Portal上“5个现有的配置文件”在Xcode 4.x Organizer&gt;设备选项卡&gt;库中的Provisioning Profile部分中缺失的问题。

我建议遵循这些步骤,通过恢复丢失的配置文件并覆盖Xcode 4.1-4.2.1的本地库中处于“Active”状态的配置文件的情况来解决问题。


1
我喜欢这个答案,因为它确实有效,而且他们的文档会尽量保持更新。 - oky_sabeni

7

您需要前往开发者网站,进入证书页面,并为您当前的MAC生成一个新证书,然后将其添加到您的钥匙串。

接下来您需要重新添加配置文件。现在应该可以正常工作了。基本上,您需要执行与首次获取Dev证书时相同的步骤。


7
我曾遇到相同的错误,但问题略有不同。我们有一个开发团队,但我们都使用相同的Apple ID(开发人员帐户),因此当我生成供应配置文件时,我一直收到与主题问题相同的错误。尽管在执行Development Provisioning Assistant步骤时已下载了证书,但仍然出现了错误。后来我发现问题在于我们的Apple Developer帐户正在使用在我的同事机器上生成的证书,因此我需要撤销它并生成一个新证书,然后创建供应配置文件。
总结:学到的教训是,用于您的供应配置文件的证书必须在将要使用该配置文件的同一台计算机上生成。这在您有一个共享相同的Apple ID的开发人员团队时特别重要。希望对某些人有所帮助。

1
另一种实现方式是将你同事的证书和私钥迁移到你的密钥链存储中。因为配置文件与证书相关联。 - Neal.Marlin

6

对于这种错误,我的建议是,即使与导出/导入场景无关,添加移动配置证书(即PROV文件)时,请不要将文件从Finder拖到Keychain Access中。相反,在Finder中双击PROV文件,同时保持Keychain Access应用程序在运行状态。

实际上,我曾经看到我的旧的配置项目在Keychain中(黄色灯的那一个)被替换为一个新的同名和应用程序ID的绿色项目。希望这些提示有所帮助。


1
谢谢,同时在Xcode Organizer下的“Provisioning Profiles”中点击“添加”会失败,但如果我双击“.mobileprovision”文件,则一切运行正常。 - damix911

5
今天早上,当我打开一个使用不同证书的旧应用程序并允许其访问钥匙串时,遇到了这个问题。我的另一个一直很好运行的应用程序因此停止工作并显示错误。一直到现在,我一直在苦苦寻找解决方法,但实际上只需要这样做:
Xcode 菜单 > 首选项 > 帐户 > 使用的 APPLE ID > 查看详细信息
在新窗口中,在“签名身份”左下角按“+”按钮,然后选择“iOS 开发”。它将重新添加身份验证信息,之后我的问题就解决了,应用程序可以再次在设备上运行。
图片:https://istack.dev59.com/cHPxQ.webp

4

最近我的MAC OS崩溃了。我重新安装了macOS 10.7.4和Xcode 4.5。但是在organizer中,所有的配置文件都显示以下消息。

Valid Signing identity not found

我曾经苦苦寻找帮助,持续了几天。后来我意识到,如果你从一个系统迁移到另一个系统(或格式化你的系统),你需要将你的私钥从旧系统的钥匙串导出到新系统(或新安装的操作系统)中。

你也可以在组织者中导出你的开发者资料/团队开发者资料。

Organizer > Teams > Developer Profile > Export

希望这有所帮助。

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