试图重建一个昨天还在工作的应用程序。收到一条信息说一个档案过期了,所以我把它从iPod和iTunes中删除了。当我选择一个新的配置文件(一个在标识符*),我现在得到一个错误:

代码符号错误:无法找到配置文件(长字符串)。

我错过了什么?我浏览了相关问题,并没有看到这种情况。


当前回答

我刚刚在Xcode 4中遇到了这个问题。为了解决这个问题, 您需要将所有正确的规定都放入调试和发布配置中。

我试图提交(通过存档)我的应用程序。所以我只是将调试条款改为“不要代码签名”,并将发布条款改为我的应用程序的appstore条款。

这修复了它,使我能够正常归档。希望这能有所帮助。

其他回答

在我的案例中,这个问题通过打开Window -> Organizer来解决,选择我的设备并在右侧的“供应”面板下删除旧的供应配置文件。旧的手机已经打上了一个红色的“x”符号,但iPhone仍在使用它。

除了这个配置文件之外,新的配置文件也出现了(使用相同的名称),在简单地重新启动应用程序后,它运行得很顺利。

要完全在终端中实现Brad的解决方案,请使用以下命令

cd [Xcode项目父] vi [Xcode项目名称].xcodeproj/project.pbxproj . vi /[违规配置文件][输入] Dd -删除整行 按“n”,直到找不到为止 Ctrl+x保存并关闭

我同意Brad的回答,你可以通过手动编辑你的目标/项目来解决这个问题,删除像这样的任何行:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

然而,在Xcode 4.2及以后版本中,有一个更简单的方法来访问这个文本并选择和删除它。在左边的Project Navigator中,选择您的项目(Project Navigator的最上面一行)。现在只需选择查看>版本编辑器>显示版本编辑器。这将显示你的项目为文本,你可以搜索PROVISIONING并删除麻烦的行,就在Xcode的编辑器窗格中。

我遇到了一些问题,因为我用一些新设备更新了AdHoc配置文件,以便在TestFlight上使用。假设这是因为Xcode在项目或目标的协同设计构建设置中对你的配置配置文件有旧的引用。我解决问题的方法是:

转到目标构建设置和项目构建设置,在代码签名下将所有配置文件更改为其他内容。 转到管理器中的设备/配置配置文件删除违规配置文件,然后单击右下角的刷新按钮。 回到目标和项目构建设置,将配置配置文件设置为适当的(希望是)新刷新的配置配置文件。

Brad Smith的解决方案适合我,但我还必须删除CODE_SIGN_IDENTITY字段才能使其工作。