Xcode 4.6 - 发布配置文件中找不到有效的签名身份

5
我正在研究如何将应用提交到App Store,并且在这里遇到了一些问题。我一直在按照这篇教程进行操作。
我创建了一个分发的Provisioning Profile,并将其下载并添加到Window - Organizer - Devices中,在侧边栏的Library heading下拖入了'Provisioning Profiles'。在那里我看到的是这样的: Here is an image of it. 我尝试吊销了所有证书,然后再次将它们添加到我的Keychain Access中,但没有帮助。即使刷新了Xcode中的Provisioning Profiles。
此外,我已经阅读到如果更改正在使用的机器,则经常会发生这种情况,但这不是我的情况。我在同一台Mac上开发应用程序,就是现在正在使用的那台。
如果需要,我愿意提供更多信息以帮助解决这个问题。先感谢您的帮助。
5个回答

19

需要检查的事项:

  1. 确保在钥匙串访问中,您需要使用的证书已经存储了私钥。 Keychain Access

  2. 确保捆绑标识符与您的AppID完全匹配(除非您使用通配符标识符)。

  3. 确保所选的配置文件使用了创建的证书。 Provisioning Profile

  4. 确保您下载了该配置文件并将其用于签署目标的分发设置。

如果所有这些都完成了,应该可以正常工作。

此外,我曾就iOS的证书和配置进行过演讲。 这里 是说明我如何处理事情的主题演讲PDF链接。


3
我完成了。我在第一步就找到了答案。由于我没有发布配置文件的私钥,所以我请求最初创建证书的开发者提供我所需的.p12文件,这很顺利。现在我有了有效的发布配置文件。 :) - abpetkov
好的,一定要备份所有证书和密钥(p12文件)。永远不知道硬盘何时会出现故障。 - LJ Wilson
1
感谢您发布ElJay,您获得了金星。不确定我是如何做到的,但第三步是我的瓶颈。最终我在Provisioning Portal中发现了重复(对于肉眼来说)的应用程序ID,切换到另一个重复项,问题就解决了。 - fusion27
它在钥匙串访问中显示证书,但没有私钥。你能帮我解决这个问题吗? - keen
这意味着您没有从该计算机生成证书签名请求(CSR)。 您需要获取p12文件(如果从生成CSR的计算机导出了一个文件),或者您需要在开发人员门户中撤销证书并重新进行认证过程。 - LJ Wilson
显示剩余3条评论

3

只需重新启动XCode即可。

有时候按照文档上的步骤操作,但XCode可能无法正常工作。


1
很遗憾,但这是事实。通常,在对配置文件进行更改后,我们需要重新启动Xcode。 - coco
谢谢你。今晚你为我节省了多少时间,真是说不准呢。 - Clay Garrett

0

我通过打开KeyChain实用程序并删除过期的配置文件来解决了这个问题。我按照developers.apple.com成员页面上的所有说明更新了我的配置文件。

然后使用Xcode 4.6打开我的应用程序。在构建设置下选择了我的名字和iPhone开发人员。

我的问题是旧的开发者配置文件ID和新的ID相同,我没有意识到这一点。删除旧的配置文件允许使用新的配置文件。


0
解决方案:我通过选择开发配置文件和身份,构建和运行,然后切换回分发配置文件和分发身份来解决了最新的问题。 背景:昨晚我的构建工作正常,我切换到另一个分支,尝试以相同的方式签名,但仍然失败/显示没有匹配的有效签名身份。
我尝试重新启动Xcode、重新启动Mac、删除无效/过期的配置文件等。然后出于测试运行的需要,我切换到开发配置文件(我正在使用分发配置文件测试IAP),然后当我切换回来时,它就奇迹般地工作了!
在这个过程中有一件奇怪的事情是,设备上的配置文件似乎与我在磁盘上拥有的不匹配,在我尝试将磁盘上的配置文件添加到设备时,它没有被标记为有效选择(我的开发配置文件被标记为有效选择)。
即使在运行之后,设备仍然显示相同mobileprovision的不同版本(初始代码不同,到期时间比我拥有的早一天)。我在共享设备环境中工作,所以我无法完全访问/查看所有这些版本的来源。

0

如果您仍然困在这个问题上,请尝试重新执行整个过程。

进入钥匙串,删除所有iPhone证书,然后进行常规操作。我之前也遇到过这个问题,所以我只是重新做了一遍。好处是不需要花费太长时间,只需要5分钟:)

希望这能帮助到您。


当您构建并上传到App Store时,如果您要上传更新但您的配置文件已过期,您能否这样做? - AsifHabib

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