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


313

我正在为此扯头发。我刚刚下载了iPhone 3.0 SDK,但现在无法使用我的配置文件。这是我尝试过的:

  • 删除所有配置文件
  • 删除登录钥匙串
  • 创建新的“登录”钥匙串,使其默认
  • 创建一个新的证书签名请求
  • 在Apple开发人员中心中创建新的开发人员和发行证书
  • 下载并安装它们
  • 下载WWDR证书并安装
  • 创建一个新的配置文件,然后双击安装

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

编辑:

我完全重新安装,Mac OS X并且从全新安装开始安装3.0 SDK,仍然有同样的问题。


我刚刚花了一个小时来解决这个完全相同的问题,帮助了一位朋友。最后,我们只是放弃了向ADC网站提交某种问题的想法。听起来好像他们搞砸了。
休息室

我有同样的确切问题。我打算发一个问题。证书有效,选择了正确的钥匙串,但Xcode无法识别它。甚至在打开任何项目之前。我重复了整个CSR流程10次,我准备放弃。看起来有些严重错误。
hyn

看起来很多人在官方论坛上也遇到同样的问题。无疑,这是一个仅在最近才出现的错误。
HYN

78
经过五天的讨论,它终于成功了。但是不知道为什么。苹果很烂。
dontWatchMyProfile 2010年

Answers:


65

昨天有同样的问题。现在,在登录到开发人员门户后,对于每个无效的配置文件,都有一个“更新”按钮。续订并下载更新的配置文件后,一切似乎都能按预期工作,因此可以肯定地解决了问题:)

更新:您可能必须与Apple联系以获得“更新”按钮,否则他们将其删除了-解决方案是只需下载并将其添加到钥匙串中,而无需更新。


但是如何将其添加到钥匙串中?它不会让我!!
2012年

默认情况下,配置文件是通过Xcode管理的。钥匙串中的内容应该是签名的分发证书。
ff10

166

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

在花了数小时像你们中许多人一样拔掉头发之后,我执行了以下步骤来修复它:

  1. 关闭所有东西,除了应该登录到App Dev center的网页。

  2. 打开Xcode。单击窗口>组织器。然后单击设备选项卡,然后选择左侧的“配置文件”。那应该调出您的配置文件。突出显示一个(如果大于1),右键单击并删除配置文件。是的,就做吧!全部删除!(在尝试使该产品正常工作之后,我不断制造新产品。)

  3. 登录到右侧的App Dev Center后,您会从首页看到的页面单击“ iOS PROVISIONING PORTAL”>(不要“启动助手”)。而是单击左侧。选择证书。您可能只会列出一行带有您的姓名/公司的名称-从此处单击右侧的REVOKE。单击确定以确认您要执行的操作。

  4. 在同一页面上,单击“设备”。单击您要配置的设备旁边的框,然后单击“删除所选内容”。再次单击“确定”进行确认。

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

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

  7. 点击“启动助手”

  8. 创建一个新的应用程序ID-随心所欲地调用它。只要确保它足够独特,就可以知道那是您刚刚创建的那个,因为您一整天都在混乱的其他人不会从Apples Dev Center中删除。

  9. 您应该能够毫无困难地跟随Assistant的其余部分-主要是您只需要删除旧的配置文件并重新开始即可。

祝好运!


2
在高清ssd resintall之后,我尝试了各种“破坏性较小”的方法来在Mac上重新设置我的配置文件,这是唯一有效的方法!赞!
布莱德·帕克斯

1
很棒的路易.....这对我来说是个奇迹...过去两周我一直在挠头,然后我看到了你的来信和哇.... KUDOS .....为您投票...
A for Alpha

我只需要重新浏览自己的帖子!我必须按照原来的指示完成配置。:)很高兴看到它仍然有效!
Louie

1
好一个!当存在两个具有相同名称的证书(例如,一个旧证书和一个新创建的证书)时,由于XCode拒绝构建,因此可能有必要从密钥链中删除旧密钥。
acme

4
不为我工作。当我转到管理器并单击“设备”时,没有任何内容显示“配置文件”。
罗伯特·诺亚克

70

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

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

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

  3. 如果您不想处理所有这些问题,请执行以下操作:只需在网站上吊销证书,然后删除本地计算机上的副本即可。然后请求一个新的。这应该是解决此类问题的最终方法。


4
我有一台新机器,我必须在新旧机器上工作一段时间。第一种方法解决了我的情况。谢谢!
Eonil'3

2
需要特别指出的是,如果您更换了机器,此响应特别有用。谢谢罗马李!
埃里克·布鲁克托

1
类似地,我正在准备一台机器供新用户使用,并发现所有私钥都已登录。将它们导出给新用户,它的工作就像一个魅力。非常感谢。
塔皮

28

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


我有一个类似的修复方法对我有用。我从证书->开发中下载了证书,而不是证书->分发。运行Xcode 3.2.1。
山姆

6
这是你应该做什么(:这里的问题是,当这样做会发生什么不工作
corydoras

类似。在我下载开发证书和发行证书并双击它们以打开钥匙串之前,我的公钥和私钥没有配对。这解决了问题。
robr

23

我解决了

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

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

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

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

显然有此问题的4个不同的原因:

  1. 您的钥匙串缺少与iPhone开发人员或iPhone发行证书关联的私钥。
  2. 您的钥匙串缺少Apple全球开发人员关系中级证书。
  3. 您的证书已被吊销或已过期。
  4. 在“钥匙串访问”首选项中打开了在线证书状态协议(OCSP)或证书吊销列表(CRL)


3
为了他人的利益:当您的开发人员证书过期并且您生成新证书时,该问题就会显现。由于它是新的(未续订),因此它不会出现在任何配置概要文件中。您必须进入每个供应配置文件,选择新的开发人员证书并重新生成。下载并安装这些新的预配配置文件,一切都会顺利进行。
史蒂夫·

@SteveMadsen对我来说绝对是这样。我在门户中打开了每个配置概要文件,选择了新的开发人员证书,然后在Xcode中单击“刷新”。像魅力一样工作。非常感谢!这让我发疯!
路加福音

我有第一个问题。私钥未在密钥链访问中添加到证书中。但是我无法解决这个问题。请帮我解决一下这个。
敏锐的2013年

谢谢。我的证书/配置文件即将过期(需要一天),问题开始了。因此,课程是等到最后一分钟才更新证书和配置文件。
kakyo 2014年

14

在仔细地浏览了这里的线程并检查了人们提出的所有解决方案之后,在按照Apple开发人员文档中提到的创建CSR和移动供应文件的步骤进行操作之后,我可以放心地声明这一点!

  1. 启动Xcode。
  2. 选择窗口->整理器
  3. 单击此刷新按钮,那个肮脏的黄色条将立即删除。

http://img.skitch.com/20100820-1ngm8an14c6fm3dt7g6j51d2nx.jpg

相信我,您只需要这样做。无需一次又一次地重复此过程,以确保您以正确的方式进行操作。只需按刷新,输入您的登录凭据即可。


我收到“发生意外错误。请重试。如果问题仍然存在,请联系Apple开发人员支持。等等”
Dave

1
当我在Xcode中执行此操作时,它确实验证了所有配置文件并最终得到两个有效的配置文件。但是,它没有导入我需要的我的临时分发配置文件。为了做到这一点,我必须去门户网站,修复配置文件的到期时间,下载它,然后导入Xcode(双击即可)。所以-YMMV。
n13 2012年

完美地为我工作!谢啦。苹果人真的是最无聊的人...他们怎么能发明出一种折磨人的方式在您的设备上测试您的应用程序呢?这超出了我。对用户友好,但是却使开发人员陷入困境!荒谬。无论如何,谢谢队友!
Yahel 2012年

如果您是几个团队的成员,这可能不会导致成功
brainray

据我所知,->整理器中不再有刷新按钮。XCode 7.3
Joel

9

对我来说,它仅在证书和两个密钥都位于登录钥匙串中时才起作用。我之前曾创建过一个开发钥匙串,但是Xcode Organizer在那儿找不到钥匙。所以我将它们移回Login,退出了钥匙串工具-瞧,Xcode Organizer中的错误消失了!这是在带有3.1.3 SDK的Snow Leopard 10.6.2上。


7

对于开发证书,您可以仅创建一个新证书并将其与配置文件匹配。但是对于分发,例如当您要提交给Apple时,您不能这样做,而必须使用团队代理创建的分发证书。问题是您需要计算机上的私钥。但是,对于创建证书以将私钥复制到您的团队代理而言,这非常简单,以下是Apple的说明,希望对您有所帮助。

如果您需要在多台计算机上进行开发或决定重新安装系统操作系统,则必须将私钥安全地保存在至关重要的位置。没有私钥,您将无法在Xcode中签名二进制文件无法在任何Apple设备上测试您的应用程序。生成CSR后,“钥匙串访问”应用程序会在您的登录钥匙串上创建一个私钥。此私钥与您的用户帐户绑定,如果由于重新安装操作系统而丢失,则无法复制。如果计划在多个系统上进行开发和测试,则需要将私钥导入要在其上进行工作的所有系统上。

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

5

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

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

然后将其导入新计算机。

使用这样的密钥,最好保留滚动的证书软件包文件,因为很多时候“公共”密钥或cert文件不足以从中还原内容。


3

您是否尝试过重启Mac和设备?me脚的答案,但我总是先尝试一下。


是的,重新启动这两个手机和Mac的
本·里维斯

8
整个供应和钥匙串给了我蜂巢。讨厌这个过程。
Nosredna

2
我认为注释通常应用于这样的答案-否则,您可以将其添加到几乎每个问题中
Casebash 2010年


3

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

  1. 库>设置配置文件

  2. 设备>您的设备>设置配置文件

我一直将置备配置文件放入2.,即使在正确清洁和安装后也无法正常工作。然后我发现了1.终于找到了刷新按钮。如果在1.中选择“自动设备配置”,然后单击“刷新”,则所有内容均得到验证(在2.中不再显示黄色警告)。


是! 其他帖子也提到了“刷新”按钮,但我找不到它。谢谢!
zadam

2

重新做完所有工作之后,然后使用XCode创建一个空项目并将其构建/运行到设备中,就可以使它工作。XCode显示了一个窗口,询问如下内容:是否要接受开发人员证书。我按了“总是”。仅在此步骤之后,我才在Organizer中清除了消息“在您的钥匙串中找不到与该配置文件匹配的有效签名身份”。


2

大家好,昨天我遇到了很多麻烦。我几次经历了整个过程,与助手一起向权威机构提出了新的证书请求,清除了门户中的所有内容,上传了证书,创建了新的配置文件并下载了所有内容。没有骰子。

但是,请检查一下。

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

与助手创建新证书请求后,按“在Finder中显示”,然后双击那个坏男孩。您将弹出“证书助理”弹出窗口,并显示“请指定颁发证书颁发机构”等信息。否则,请关闭它,然后再次双击。现在,只需继续选择“从现有CA请求证书”对话框即可-继续请求已“保存到磁盘”-继续将其保存在任意位置,甚至覆盖文件。

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

运行到KeyChain访问,您将在其中看到您的密钥!将此证书上载到Apple门户,然后像往常一样通过他们的向导,一切现在都应该很好用。


2

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

证书->开发->下载证书->发行->下载

双击两个证书。之后,两个证书都必须出现在钥匙串中。


2

答案是,这将吊销您的当前开发证书并换一张新证书。按照苹果网站上的说明进行操作。就这么简单!我有这个确切的问题。


2

完成此操作的简单步骤:

  1. 从计算机上的钥匙串(已经包含您的开发密钥)开始,然后创建证书请求。将请求上传到开发站点并创建证书。
  2. 使用证书创建配置文件。
  3. 下载配置文件并将其放在Xcode上。

现在所有的点都连接好了,应该可以了。这适用于开发人员和发行人。



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个密钥。


1

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


@Lou,听起来我面临与您之前相同的问题。...在我竖起'FileValut'之前,我发现了问题:所有配置文件都显示'在该文件中找不到与该配置文件匹配的有效签名身份您的钥匙串'.....我尝试修复,但是到目前为止我还没有解决...您能给我更多详细的提示吗?如何更新钥匙串?感谢您的提前帮助
。.– iXcoder

1

“这是Apple门户网站上的一个错误。他们在供应配置文件中缺少必填字段。他们在2009年6月16日晚些时候修复了该错误。”


1

我不知道他们是否真的跳过了它,还是我的眼睛只是瞪着眼睛,但是....

以防万一其他人忽略了我所做的同样的事情。

就像您进行开发和测试时一样...

1)您需要分发<<证明>> 2)您需要分发<<提供配置文件>>

这是门户网站上的两个步骤,用于对事物进行签名。

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

一旦我有了配置文件

* 答对了 *


1

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

我将Microsoft钥匙串的所有内容移到了登录钥匙串,一切恢复了正常。


1

在经历了最初发布的相同问题之后,经过了4次单独尝试,我终于使它起作用。因此,发生的事情是这样,我不确定这是否是旧问题(2009-07-09),但是无论如何我都会发布,以防对您有所帮助。对我有用的...可能对您有用...

  1. 重新开始并删除钥匙串中的旧私钥,公钥和证书
  2. 完成整个过程,从证书颁发机构请求证书,获取新的公共密钥,新的私钥和新的证书。注意:工作时,我只有一个私钥,一个公钥和一个证书
  3. 制作一个新的配置文件(利用您刚刚制作的证书),并将其放在Xcode的组织者窗口中。删除所有旧的BS。
  4. 运行。

希望这会有所帮助。


1

这里的每个人都是错的。您所需要做的就是遵循Apple在管理您的数字身份中提供的步骤。

它指示您通过Xcode导出证书,然后通过Xcode重新导入。效果很好,但请确保两台计算机上的用户名相同,否则将失败。


1
您甚至没有回答相同的问题,因此声称其他所有人都是“非常错误的”是有点愚蠢的行为,不是吗?
汤姆(Tom)

1

我刚刚花了几个小时来解决这个问题,在续签了我的开发许可证后又出现了问题。重申一下,一切都顺利进行,然后(谢谢Apple!)一切都搞砸了,并且一直搞砸了。Apple官方疑难解答步骤(与上面链接在一起)或此处提到的可能的解决步骤都没有为我解决问题。

最终对我来说,是删除我的开发证书和发行证书,在置备门户中吊销它们,然后让Xcode自动刷新/发布它们。没有其他任何方式,可以正确地连接私钥,将两个必需的证书都放入我的钥匙串中。


1

这是我所做的。

  1. 确保您的证书没有过期,请确保删除所有过期的证书。获取新文件,等等,一旦确定了所有内容,然后专注于项目文件。
  2. 在finder中,转到您的.xcodeproj文件,然后显示包内容。
  3. 用xcode或textedit打开project.pbxproj。
  4. 找到对PROVISIONING_PROFILE的所有参考,并删除GUID,只需留空“”,根据您的项目,您应该拥有大约12个以上的参考,请删除所有GUIDS。

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

  6. 重新为所有可能的代码签名选择正确的配置文件(它们不应该全部相同)
  7. 建立您的项目,您应该一切顺利。

我认为Xcode在某种程度上感到困惑,并从project.pbxproj中删除了所有的配置文件,然后重新选择一个有效的配置文件将其设置为striaght。


1

如果您有新的Mac,则可以转到IOS开发人员中心-> Provisioning Portal->证书->开发->吊销并创建新证书。我的问题解决了。我的错误是“代码签名错误:身份'iPhone Developer'与您的钥匙串中的任何有效,未过期的证书/私钥对不匹配”


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.

注意:我是从开发人员门户网站(不是由Xcode管理)自己创建了配置文件。

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

在此处输入图片说明

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


1

您需要什么:

1)私钥和公钥。

他们在您的钥匙串中有以下符号:

替代文字

2)根据这些密钥的签名请求获得的证书

3)链接到该证书的配置文件

假设您更换计算机,并想再次使用配置文件设置Xcode。你怎么做呢?

  1. 打开Xcode,按ctrl + O打开管理器,然后删除您可能已经安装的所有配置文件。
  2. 打开钥匙串访问,并创建一个签名请求,然后将其保存到文件中(创建请求时,会在钥匙串中创建一个私钥和公钥)。
  3. 通过向Apple发送此签名请求,在供应门户中创建/更新证书
  4. 下载并安装新创建的证书。
  5. 撤消您的配置文件,并使用新证书更新它们。
  6. 下载并安装新更新的配置文件。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.