代码签名错误:找不到预配文件。

75

我一整天都在尝试将我的应用程序构建到我的设备上。

当我尝试在我的设备上构建时,出现了以下错误。

我已经阅读了关于这个问题的资料,但真的不知道该如何解决。以下是我认为问题所在的地方。我是新手,没有解决这个问题的经验。

当我打开“Dont Code sign”时,有一个“Automatic profile selector (recommended)”,其中有两行可以选择,还有一个“My profile for dev”选项,只有一行可以选择。不知道这是否是问题所在?

任何帮助都会得到赞赏。

输入图像说明


这个答案也是一个很好的解决方案:https://dev59.com/hnI-5IYBdhLWcg3wn525#2988298 - Matt
12个回答

244

这是我的做法。

  • 关闭Xcode。
  • 备份project.pbxproj文件。
  • 编辑project.pbxproj文件并删除其中提到旧的配置文件的实例行。
    • 例如,删除以下行:
    • PROVISIONING_PROFILE = "8D024EDA-DC05-40DF-B3EB-536392615EE2";
  • 重新启动Xcode并对项目进行完全清理。
  • 然后应该能够在没有警告的情况下构建项目。

享受!


12
好的回答,但请注意,project.pbxproj文件位于.xcodeproj目录内。类似的答案可以在这里找到:https://dev59.com/hnI-5IYBdhLWcg3wn525 - Pete
是的,要访问project.pbxproj文件,您需要右键单击项目图标并选择“显示包内容”。 - Eric Brotto
谢谢你的回答,你能解释一下问题是什么(为什么会出现这个问题吗?)吗?先谢谢了。 - iArezki
@iArezki这是因为它指向无法找到的配置文件。例如,您可能有一个新的配置文件,而旧的配置文件已过期。 - jyap
注意:您可能需要删除多行!我已经删除了上面建议的行,但是在使用Cmd+F搜索配置文件ID号码后,我发现另一行(紧挨着第一行)并将其也删除了。 - bkbeachlabs

34

在我的情况下,是因为Xcode 4.0.2阻止删除*.xcodepro目录中project.pbxpro文件中的旧数据。我最终在关闭Xcode后手动编辑了该文件。在文件中,我查找了所有出现的"PROVISIONING",类似于以下内容:

PRODUCT_NAME = Xyzzy;
PROVISIONING_PROFILE = "CF5F0AEA-92D9-48E1-99DF-301AB36C2BFB";
"PROVISIONING_PROFILE[sdk=*]" = "CF5F0AEA-92D9-48E1-99DF-301AB36C2BFB";
SDKROOT = iphoneos;

并将其更改为:

PRODUCT_NAME = Xyzzy;
"PROVISIONING_PROFILE[sdk=*]" = "";
SDKROOT = iphoneos;

我重新启动了Xcode,构建成功了。需要注意的是,在对项目文件进行更改之前,请确保备份项目目录,并且只有在没有其他选择时才手动编辑文件。


是的!这是XCode4.0.2的情况。我现在遇到了同样的问题。 - sagarkothari
嗨Eddy,这个方法可行。不过有没有更好的方式来解决这个问题呢?我能否在不直接更改project.pbxproj文件的情况下清除它?只是担心更改它会引起其他我不知道的问题。谢谢。 - teepusink
非常感谢。在工作中花了3个多小时,浪费了我所有的时间。 - Chewie The Chorkie
至少在Xcode 4.5中,可以通过将“Code Signing Identity”条目更改为推荐设置“iPhone Developer”(用于调试)和相应的“iPhone Distribution”(用于发布配置)来简单地实现相同的结果。这在内部将项目.pbxpro中的各个“PROVISIONING_PROFILE”部分设置为“”,并让Xcode决定使用哪个配置文件。确保在通用项目部分和您的目标部分中进行更改。 - DEAD10CC

12

我更改了项目和目标的代码签名身份为“不进行代码签名”,然后将其更改回正确的代码签名身份。 对我来说,这解决了问题。


3
对于那些遇到这个问题并耐心地阅读完所有选项的人,我想补充一点,截至4.5版本,这个答案是正确的,不应该手动编辑项目内部数据。 - SG1

11

错误信息具体是什么?您是否在组织者中添加了设备,包括所需的配置文件?在设备下选择您的iPhone时,在组织者中看到了什么?它应该带有正确的有效配置文件...


2
非常感谢,我之前在组织者和目标设置之间有些混淆。 - PeterK

7
如果您正在使用其他人创建的模板项目,则需要更改代码签名标识。
截图:http://i.stack.imgur.com/UIpGS.png(Xcode 4.2)
注意:OSX 不允许我使用文本编辑器编辑 .pbxproj 文件。

这个很好用。我想知道为什么这不是答案。 - user4951
截图是最有用的。我希望其他人也能使用截图。 - DragonLord

5
我在重新颁发开发证书时遇到了这个问题,新的证书名字/ID不一样。解决方法是更新Edit Project Settings | Build (Code Sign)中所有关于Code Sign Developer (name)的引用(不是Edit Active Executable)。点击项目并检查新证书是否被明确选择,然后重新构建和运行。我怀疑你之所以首先会出现这个错误取决于你是否设置了xCode来自动解决这些依赖关系。在我的某个版本中替换证书非常顺利,在另一个版本中我不得不手动更新它。显然,最好的解决方案是无缝的。

3

我以前遇到过这种情况,只需要重启Xcode就可以解决了。可能对你没有用,但我还是说一下吧。


3

我曾经遇到过同样的错误,而之前的构建却正常。我注意到我的构建设置 -> 代码签名 -> 配置文件被重置为奇怪的一个。我所要做的就是指向正确的配置文件来解决这个问题。


谢谢英雄!!对我有用,但我很惊讶为什么配置文件会自动更改。我注意到它经常自己更改。 - Ravi

2

这个问题可以通过更改项目设置并单击“项目”>“编辑活动可执行文件”>“构建”,然后更改设置来解决。


1

我刚刚重新制作了我的配置文件,并在组织者中重新添加了设备。然后,我点击了我的项目图标,进入了构建设置、代码签名,并重新映射到新的配置文件。


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