iPhone应用程序签名:在您的钥匙串中找不到与此配置文件匹配的有效签名身份

时间:2009-06-16 02:10:05

标签: ios xcode

我把头发拉过来。我刚刚下载了iPhone 3.0 SDK,但现在我无法让我的配置文件工作。这是我尝试过的:

  • 删除所有配置文件
  • 删除登录密钥链
  • 创建新的“登录”钥匙串,制作它 默认
  • 创建新的证书签名请求
  • 创建新的开发人员和分发 Apple开发人员中心的证书
  • 下载并安装
  • 下载WWDR证书并安装
  • 创建新的配置文件和 双击它以安装

所有证书都报告为有效,但Xcode仍然无法识别它们。我接下来应该尝试什么?

编辑:

我完全重新安装了Mac OS X,并且从安装了3.0 SDK的全新安装中仍然遇到了同样的问题。

32 个答案:

答案 0 :(得分:166)

我遇到了同样的问题:我在运行时首先将证书下载到我的小型MacBook上。当我尝试在我的iMac上安装证书时...然后我遇到了本页描述的问题。

在花了几个小时把头发拉出来之后,我执行了以下步骤来修复它:

  1. 关闭除了应该登录到App Dev中心的网页之外的所有内容。

  2. 打开Xcode。点击WINDOW>组织者。然后单击“设备”选项卡,然后选择左侧的“配置配置文件”。 这应该会显示您的配置文件。逐个突出显示(如果超过1),右键单击并删除配置文件。是的,就这样做吧!全部删除! (在新的一个试图使这个东西发挥作用后,我不断制作一个新的。)

  3. 从登录到右侧App Dev Center后看到的第一页点击“iOS PROVISIONING PORTAL”> (不要“发起助手”)。而是单击左侧。选择证书。你可能只有一行列出你的名字/公司 - 从那里点击右侧REVOKE。单击“确定”以验证您要执行的操作。

  4. 在同一页面上,单击“设备”。单击您要设置的设备旁边的框,然后单击“删除已选择”。再次单击“确定”进行验证。

  5. 等待约2分钟让Apple做他们的事。

  6. 现在点击左侧导航栏中的“HOME”。

  7. 点击“启动助手”

  8. 创建一个新的应用ID - 无论你想要什么,都可以调用它。只要确保它足够独特,就知道你刚刚创建的那个,因为你整天乱搞的其他人都不会从苹果开发中心删除。

  9. 您应该能够毫无困难地关注智能助理的其余部分 - 主要的是您只需要删除旧的配置文件并重新开始。

  10. 祝你好运!

答案 1 :(得分:70)

我遇到了同样的问题。这是因为您的计算机上不存在证书的私钥。

  1. 如果您现在正在使用新计算机并从网站下载证书: 您可以从旧计算机导出证书,然后在新计算机上导入。

  2. 如果您与某人共享开发人员帐户: 您要求帐户所有者向您发送邀请并成为该帐户的团队成员。然后,您可以从头开始创建自己的证书。

  3. 如果你不想处理所有这些sh * t: 只需撤销网站上的证书并删除本地计算机上的副本即可。然后请求一个新的。这应该是解决此类问题的最终方式。

答案 2 :(得分:65)

昨天遇到同样的问题。现在,在签署到开发人员门户后,每个无效的配置文件都有一个“续订”按钮。更新和下载更新的配置文件后,所有配置文件似乎都按预期工作,因此问题肯定已经解决:)

更新:您可能需要联系Apple以获取“续订”按钮,或者他们将其删除 - 解决方案是只需下载并将其添加到钥匙串,无需续订。

答案 3 :(得分:27)

我发现我需要将我从开发人员程序门户网站上的“证书 - >分发”页面下载的distribution_identity.cer文件拖到钥匙串访问程序中,然后此错误就消失了。

答案 4 :(得分:22)

我通过

解决了这个问题

a)转到门户网站上的配置文件页面

b)点击您遇到问题的配置文件上的编辑(右侧)。

c)选中“适当的证书”框(默认情况下未选中)并选择正确的应用程序ID(我的旧证书已过期)

d)下载并使用新的配置文件。删除旧的。

Apparently此问题有4种不同的原因:

  
      
  1. 您的钥匙串缺少与您相关的私钥   iPhone开发人员或iPhone   分发证书。
  2.   
  3. 您的钥匙串缺少Apple全球开发者关系   中级证书。
  4.   
  5. 您的证书已被撤销或已过期。
  6.   
  7. 在线证书状态协议(OCSP)或证书   撤销列表(CRL)已打开   钥匙串访问首选项
  8.   

答案 5 :(得分:14)

在仔细浏览了这里的主题并检查了人们提出的所有解决方案之后,我可以自信地声称这一点,在按照Apple开发人员文档中提到的创建CSR和移动配置文件的步骤之后,就这样做了!,

  1. 启动Xcode。
  2. 选择窗口 - >管理器
  3. 点击此刷新按钮,该肮脏的黄色条将立即删除。
  4. http://img.skitch.com/20100820-1ngm8an14c6fm3dt7g6j51d2nx.jpg

    相信我,你只有必须这样做。无需一次又一次地重复该过程以确保您以正确的方式执行此过程。只需按刷新,输入您的登录凭据就可以了。

答案 6 :(得分:9)

对我而言,只有当证书和两个密钥都在登录钥匙串中时,它才有效。我之前创建了一个开发钥匙串,但Xcode Organizer在那里找不到钥匙。所以我把它们移回登录,退出钥匙串工具 - 瞧,Xcode Organizer中的错误就消失了!这是使用3.1.3 SDK在Snow Leopard 10.6.2上。

答案 7 :(得分:7)

对于开发证书,您只需创建一个新证书并将其与配置文件相匹配即可。但是,对于分发,例如,当您要提交给Apple时,您无法执行此操作,并且必须使用团队代理创建的分发证书。问题是您需要机器上的私钥。但是,对于创建证书以将私钥复制给您的团队代理来说非常简单,下面是Apple的说明,我希望这会有所帮助。

如果您需要在多台计算机上进行开发或决定重新安装系统操作系统,则必须将私钥保存在安全的地方。 如果没有您的私钥,您将无法在Xcode中签署二进制文件并在任何Apple设备上测试您的应用程序。生成CSR时,Keychain Access应用程序会在您的登录密钥链上创建一个私钥。此私钥与您的用户帐户绑定,如果因重新安装操作系统而丢失,则无法复制。如果您计划在多个系统上进行开发和测试,则需要将私钥导入到您正在进行的所有系统上。

  1. 要导出私钥和证书以便安全保存并在多个系统上启用开发,请打开Keychain Access Application并选择“密钥”类别。
  2. 控制 - 单击与iPhone开发证书关联的私钥,然后单击菜单中的“导出项目”。私钥由iPhone Developer标识:与之配对的公共证书。
  3. 将密钥保存为个人信息交换(.p12)文件格式。
  4. 系统将提示您创建一个密码,当您尝试在另一台计算机上导入此密钥时使用该密码。
  5. 您现在可以在系统之间传输此.p12文件。双击.p12将其安装在系统上。系统将提示您输入在步骤4中输入的密码。

答案 8 :(得分:5)

我得到的最佳答案是导出密钥,而不是仅仅尝试导入证书文件。

当您从生成请求的钥匙串中导出密钥时,您将获得一个Certificates.p12文件,该文件将您需要的密钥一起滚动。

然后将其导入新计算机。

使用这样的密钥,保留一个滚动的证书包文件可能是件好事,因为很多时候“公共”密钥或证书文件不足以从中恢复。

答案 9 :(得分:3)

只是使用Xcode 4的注释:在组织者中,左侧窗格中有两个不同的部分:

  1. 图书馆>供应资料

  2. 设备>你的设备>供应资料

  3. 我总是将我的配置文件放入2.即使在清洁和正确安装后,它也无法正常工作。然后我发现1.最后我找到了刷新按钮。如果您在1.中选择“自动设备配置”并单击刷新,则所有内容都会得到验证(在2.中不再出现黄色警告)。

答案 10 :(得分:3)

您是否尝试重新启动Mac和设备? Lame回答,但我总是先尝试。

答案 11 :(得分:3)

在我的情况下,我将项目从我的iMac复制到我的Macbook Pro,发现我没有在Macbook上安装我的私钥。所以我导出了我的私钥,将其复制并安装到Macbook上,瞧它有效!我在这里记录了这些信息: http://www.creatistblog.com/2009/09/iphone-developer-provisioning.html

答案 12 :(得分:2)

两种不同的配置文件(开发和分发)有两种不同的证书。您必须在钥匙串中安装BOTH证书。在iPhone开发人员计划门户中:

证书 - >发展 - >下载 证书 - >分发 - >下载

双击两个证书。之后,两个证书必须出现在Keychain中。

答案 13 :(得分:2)

嘿伙计们,我昨天遇到了很多麻烦。我经历了几次整个过程,向助理请求权威机构的新证书请求,清除门户网站中的所有内容,上传证书,创建新的配置文件以及下载所有内容。没有骰子。

但是,请检查一下。

首先清除门户网站上的所有证书以重新开始。

在助理创建新证书申请后,按“在Finder中显示”,然后双击那个坏男孩。您应该获得证书助理的弹出窗口,其中显示“请指定颁发证书颁发机构”等屏幕。如果不这样做,请关闭它并再次双击。 现在继续选择对话框 “从现有CA申请证书” - 继续 请求已“保存到磁盘” - 继续 将它保存在您喜欢的地方,甚至覆盖文件。

最后,您应该看到神奇的“创建密钥对”

转到KeyChain访问权限,你会在那里看到你的密钥!将此证书上传到苹果门户网站,然后照常完成他们的向导,现在一切都应该很好。

答案 14 :(得分:2)

我重新做了所有事情,然后使用XCode创建一个空项目并将其构建/运行到设备上。 XCode显示了一个窗口,询问:您是否要接受开发人员证书。我按下了“永远”。只有在这一步之后,我才能删除“管理器中无法在您的钥匙串中找到与此个人资料匹配的有效签名身份”的消息。

答案 15 :(得分:2)

我登录了开发者帐户并撤销了开发证书。在撤销和下载开发证书后,我双击了新下载的证书,这次私钥在KeyChain Access中的开发证书下。

答案 16 :(得分:2)

确保干净利落的好方法是先完全清理登录钥匙串。

此外,一个非常重要的步骤是在导入私钥和公钥之前解锁您的钥匙串

 security unlock-keychain -p password ~/Library/Keychains/login.keychain 

将私钥导入登录密钥链:

security import PrivateKey.p12 -k ~/Library/Keychains/login.keychain 

导入1个身份。

将公钥导入登录密钥链:

security import PublicKeyName.pem -k ~/Library/Keychains/login.keychain 

导入1键。

答案 17 :(得分:2)

完成此任务的简单步骤:

  1. 从计算机上的钥匙串(已包含您的dev密钥)开始,并创建证书请求。将请求上传到开发站点并创建证书。
  2. 使用证书创建个人资料。
  3. 下载个人资料并将其放在Xcode上。
  4. 现在所有的点都已连接,它应该可以工作。这适用于开发和分发。

答案 18 :(得分:2)

答案是撤销您的当前开发证书并重新制作新证书。按照苹果网站上的说明进行操作。就这么简单!!我遇到了这个问题。

答案 19 :(得分:1)

如果你有新的mac,你可以去 IOS开发人员中心 - >供应门户 - >证书 - >发展 - >撤消并创建新证书。我的问题解决了。我的错误是“代码签名错误:身份'iPhone开发人员'与您的钥匙串中任何有效的,未过期的证书/私钥对不匹配”

答案 20 :(得分:1)

昨天我们的CI服务器遇到了类似的问题。无法使用错误

对应用扩展程序进行签名
Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier XXX were found.
  

注意:我自己Developer portal创建了我的配置文件(不受Xcode管理)。

错误是我使用分发证书创建了配置文件,但构建设置已设置为使用开发人员证书。将其更改为使用分发证书解决了这个问题。

enter image description here

摘要:匹配用于在构建设置中创建配置文件的证书。

答案 21 :(得分:1)

这就是我所做的。

  1. 确保您的证书尚未过期,请确保删除所有已过期的证书。获得新的等等,一旦确定了应有的方式,那么请关注项目文件。
  2. 在finder中,转到.xcodeproj文件,然后显示包装内容。
  3. 在xcode或textedit中打开project.pbxproj。
  4. 找到每个refrense到PROVISIONING_PROFILE并删除GUID,只留空“” 根据您的项目,您应该有大约12个以上的参考,删除所有GUID。

  5. 保存文件,然后在XCODE中重新打开项目

  6. 为所有可能的代码签名选择正确的配置文件(它们不应全部相同)
  7. 建立你的项目,你应该好好去。
  8. 我认为Xcode对某些方法感到困惑,并从project.pbxproj中删除所有Provision Profiles,然后重新选择有效的配置文件将使其设置为striaght。

答案 22 :(得分:1)

你需要什么:

1)私钥和公钥。

他们的钥匙串中有这个符号:

alt text http://pici.se/pictures/IbNdRGuoy.png

2)根据这些密钥的签名请求制作的证书

3)与该证书相关联的配置文件

假设您更换了计算机,并希望再次使用配置文件设置Xcode。你是怎么做到的?

  1. 打开Xcode,按ctrl + O打开管理器,然后删除您可能已安装的所有配置文件。
  2. 打开钥匙串访问权限,并创建一个保存到文件的签名请求(当您创建请求时,会在您的钥匙串中创建私钥和公钥)。
  3. 通过发送Apple签名请求
  4. 在配置门户中创建/更新证书
  5. 下载并安装新创建的证书。
  6. 撤销您的配置文件并使用新证书进行更新。
  7. 下载并安装新更新的配置文件。

答案 23 :(得分:1)

我不知道他们是否真的跳过了它,或者我的眼睛是否只是上釉......但

以防万一其他人忽略了我做过的事情......

就像你在开发和测试时一样......

1)您需要分发<<证书>> 2)你需要一个分发<<提供资料>>

这是门户网站上的两个步骤,以便签名。

在那里,我创建了开发人员CERTIFICATE并将其复制到Mobile Provisions文件夹,想知道它为什么不起作用。

我的配置资料一旦到位

* BINGO *

答案 24 :(得分:1)

我刚刚花了几个小时来处理这个fershlugginer问题,这个问题在更新我的开发许可证后出现了。重申一下,一切都顺利进行,然后(谢谢Apple!)这一切都搞砸了,一直搞砸了。 Apple官方故障排除步骤(与上述相关)或此处提及的可能解决步骤均未解决此问题。

最终对我来说,删除我的开发和分发证书,在配置门户中撤销它们,然后让Xcode自动刷新/发布它们。在任何顺序中,没有其他任何东西能够在正确连接私钥的情况下将所需的证书存入我的钥匙串。

答案 25 :(得分:1)

这里的每个人都非常错误。您只需按照Apple提供的步骤 Managing Your Digital Identities

它指示您通过Xcode导出证书并通过Xcode重新导入。它工作得很好,但请确保您的用户名在两台计算机上都相同,否则会失败。

答案 26 :(得分:1)

我遇到了同样的问题但是,这是因为我在Mac上设置了“FileVault”。我进入了我的钥匙串并将“登录”设置为我的默认设置并修复了它。

答案 27 :(得分:1)

我终于得到了这个工作之后,比如,在发生最初发布的相同问题之后的4次单独尝试。所以这就是发生的事情,我现在不确定这是否是一个老问题(2009-07-09),但我会发帖,以防万一它对你有帮助。什么对我有用...可能对你有用......

  1. 重新开始并删除钥匙串中的旧私钥,公钥和证书
  2. 完成整个过程,从证书颁发机构请求证书,获取新的公钥,新的私钥和新证书。注意:当它工作时,我只有一个私钥,一个公钥和一个证书
  3. 制作新的配置文件(使用您刚刚制作的证书)并将其放入Xcode中的管理器窗口中。删除所有旧BS。
  4. 运行它。
  5. 希望这有帮助。

答案 28 :(得分:1)

我有完全相同的问题,并尝试了一切。无论出于何种原因,解决方案是我的所有证书都已迁移到名为“microsoft_intermediate_certificates”的钥匙串。因为它可能发生在Xcode升级期间,我完全不知道为什么,但它可能对某人有帮助。

我将微软钥匙串的所有内容移至登录钥匙串,一切都恢复正常。

答案 29 :(得分:1)

“这是Apple门户网站上的一个错误。他们在配置文件中缺少必要的字段。他们在6/16/09后期修复了这个错误。”

答案 30 :(得分:0)

因为我一直回到这个问题,我将在这里留下我的答案,以找到对我有用的解决方案。事实证明,对于我的同一个公钥/私钥开发者标识符,它在我的钥匙串中安装了两次。两者都有私钥。但是当我比较时,一个是我开发者组织中的私钥,另一个是我作为个人开发者的私钥。事实证明Xcode一直在尝试使用错误的密钥。删除错误的重复键可以解决所有问题。嘿,未来我,下次先检查一下!

答案 31 :(得分:-1)

我解决了。 我不得不将.cer文件拖到KeyChain Access中。但请确保在左上角选择“登录”。如果没有,Xcode将无法看到证书,也无法签署您的代码。

Apple在这个部门有一些改进的空间......