我已经工作了一段时间来创建一个iPhone应用程序.今天当我的电池电量不足时,我正在工作并不断保存我的源文件然后电源耗尽......
现在,当我重新插入计算机并且功能强大时,我尝试打开我的项目文件并收到错误消息:
无法打开项目
Project ...无法打开,因为无法解析项目文件.
有没有人知道我可以从中恢复的方式?我尝试使用较旧的项目文件并重新插入然后编译.它给了我一个时髦的错误,可能是因为它没有找到它想要的所有文件...
如果可能的话,我真的不想从头开始重建我的项目.
好吧,我在这个和一个稍微更旧的项目文件之间做了一个差异工作,看到文件中有一些损坏.合并后(好的和最新的部分)它现在正在工作.
关于SVN的好点.我有一个,但有一些funkiness尝试同步XCode.我现在肯定会花更多的时间用它... ;-)
我遇到了这个问题,我的大四学生告诉我一个解决方案,即:
右键单击您的projectname.xcodeproj
文件,这projectname
将是您项目的名称.右键单击后选择Show Packages Contents.之后,projectname.pbxproj
在文本编辑器中打开文件.现在搜索包含的行<<<<<<< .mine
,=======
和>>>>>>> .r
.例如在我的情况下它看起来很喜欢这个
<<<<<<< .mine 9ADAAC6A15DCEF6A0019ACA8 .... in Resources */, ======= 52FD7F3D15DCEAEF009E9322 ... in Resources */, >>>>>>> .r269
现在删除这些<<<<<<< .mine
,=======
并>>>>>>> .r
线,使之看起来像这样
9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */, 52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */,
现在保存并打开您的Xcode项目并构建它.一切都会好起来的.
穆罕默德的回答非常有帮助(并帮助我解决了问题).但是,在保留两个分支的更改时,只需删除>>>>>>> ======= <<<<<<<还不足以修复project.pbxproj(对我来说)中的解析问题合并后.
我在项目.pbxproj文件中的PBXGroup部分(其开头由如下的块注释表示:/*Begin PBXGroup部分*/)中发生了合并冲突.但是,我遇到的问题也可能出现在project.pbxproj文件的其他位置.
下面是我遇到的合并冲突的简化:
<<<<<<< HEAD id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; ======= id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; >>>>>>> branch name sourceTree = ""; };
当我删除合并冲突标记时,这就是我剩下的:
id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = ""; };
通常,删除合并冲突标记会修复project.pbxproj文件中的解析问题并恢复工作区完整性.这次没有.
以下是我为解决问题所做的工作:
id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = ""; }; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = " "; };
我实际上必须在第一个PBXGroup的末尾添加2行.
您可以看到,如果我选择放弃Head或合并分支中的更改,则不会出现解析问题!但是,在我的情况下,我想保留我从每个分支添加的两个组,只是删除合并标记是不够的; 我必须在project.pbxproj文件中添加额外的行以保持正确的格式.
因此,如果您在考虑解决所有合并冲突之后遇到解析问题,您可能需要仔细查看.pbxproj并确保没有任何格式问题!
我得到了完全相同的错误,因为Cordova将允许您创建一个包含空格的项目,而Xcode不知道如何处理.
我有类似的问题.
以下是解决它的步骤:
导航到您的文件夹projectName.xcodeproj
.
右键单击并选择" Show Package Contents
".您将能够看到带.pbxproj
扩展名的文件列表.
选择project.pbxproj
.右键单击并使用' Text Edit
' 打开此文件.
你将能够看到<<<<<< .mine
,============
和>>>>>>>>>> .r123
.这些通常是您从SVN获取更新时出现的冲突.删除这些并保存文件.
现在,您将能够在没有任何错误消息的情况下打开项目.
Xcode项目文件的可视化分析并没有帮助我在合并后找到错误.在Xcode尝试解析文件时查找syslog发现这样的行:
2/7/14 12:39:12.792 PM Xcode[9949]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 4426. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
修好后该项目可以打开好了.