试图重建一个昨天工作的应用程序。 收到个人资料已过期的消息,因此我将其从iPod和iTunes中删除。 当我选择一个新的配置文件(标识符中带有*)时,我现在收到一个错误:
代码签名错误:无法找到供应配置文件(长字符串)。
我错过了什么? 我查看了相关问题,但没有看到这种情况。
#1楼
只花了一个小时左右这样做,并在布拉德的建议和一些额外的改变的帮助下,这一切都奏效了。
我使用以下内容完成了此操作:10.7.3,Xcode 4.3.2,iOS 5.1顺便说一句。
1)右键单击myapp.xcodeproj
并选择包内容
2)使用文本编辑器打开project.pbxproj
(不建议使用textedit,因为它可能会搞乱格式化)
3)完全向下滚动,直到找到/* Begin XCBuildConfiguration section */
4)请注意,您有一个调试和发布部分
5)在发布部分看一下CODE_SIGN_IDENTITY
& "CODE_SIGN_IDENTITY[sdk=iphoneos*]"
它看起来应该是这样的:
CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";
6)看看PROVISIONING_PROFILE
和"PROVISIONING_PROFILE[sdk=iphoneos*]"
它们应该如下所示:
PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
这应与Xcode中的配置文件相匹配。 要查看它们是否匹配打开Xcode>窗口>管理器>设备>供应配置文件>右键单击配置文件>在Finder中显示> .mobileprovision的文件名是您的配置文件ID。
7)在project.pbxproj
向下滚动并找到发布部分的第二个实例。 发布部分的第二个实例应以注释结尾/* End XCBuildConfiguration section */
8)确保第二部分与第一部分匹配,以便CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]
和PROVISIONING_PROFILE
。
#2楼
要完全在终端中实现Brad的解决方案,请使用这些命令
-
cd [Xcode project parent]
-
vi [Xcode project name].xcodeproj/project.pbxproj
-
/[offending provisioning profile] [Enter]
-
dd
- 删除整行 - 按n直到找不到更多
- 按Ctrl + x保存并关闭
#3楼
Brad Smith的解决方案为我工作,但我还必须删除CODE_SIGN_IDENTITY字段才能使其正常工作。
#4楼
我同意Brad的回答,你可以通过手动编辑你的目标/项目来修复这个问题,删除任何这样的行:
PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
但是,在Xcode 4.2及更高版本中,有一种更简单的方法来访问此文本并选择和删除它。 在左侧的Project Navigator中,选择您的项目(Project Navigator的最顶行)。 现在只需选择View> Version Editor> Show Version Editor。 这会将您的项目显示为文本,您可以在Xcode的编辑器窗格中搜索PROVISIONING并删除麻烦的行。
#5楼
不幸的是,这种方法对我没有用。 但是这里有一个对我有用的修复(为了让它工作,你需要一个关于Subversion的工作项目文件):
我确实回滚到我的项目文件的工作版本。 因为无法使用Xcode进行恢复( Xcode 4的源代码控制中的'Revert'选项在哪里? ) - 我使用了Tortoise,我的Windows机器和本教程( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html )回滚到较旧的项目文件。
由于教程没有为我工作,我只是使用Tortoise将我的项目文件的工作版本保存到usb棒以将其移植到我的mac。 在那之后,我用旧的工作文件替换了新的破坏的项目文件,清理它,它就像一个魅力!
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3158930