无法打开项目…无法打开,因为无法parsing项目文件
我一直在努力创造一个iPhone应用程序。 今天当我的电池电量不足时,我正在工作,并不断储存我的源文件,然后电源熄灭…
现在,当我把电脑插回去,它的功率越来越大,我尝试打开我的项目文件,出现错误:
无法打开项目
项目…无法打开,因为项目文件不能被parsing。
有没有一种方法让人们知道我可以从中恢复? 我尝试使用一个较旧的项目文件,并重新插入,然后编译。 它给了我一个时髦的错误,这可能是因为它没有find所有想要的文件…
如果可能的话,我真的不想重build我的项目。
编辑
好的,我在这个和稍微老的项目文件之间做了一个差异,看到文件中有一些腐败。 合并后(好的和最新的部分),它现在正在工作。
关于SVN的好处。 我有一个,但有一些funkiness试图同步XCode。 我现在肯定会花更多的时间… 😉
我遇到了这个问题,我的老师告诉我一个解决scheme,即:
右键单击你的projectname.xcodeproj
文件,这里projectname
将是你的项目名称。 现在右键单击后selectShow Packages Contents 。 之后,在文本编辑器中打开您的projectname.pbxproj
文件。 现在search包含<<<<<<< .mine
, =======
和>>>>>>> .r
<<<<<<< .mine
的行。 例如在我的情况下,它看起来很喜欢这个
<<<<<<< .mine 9ADAAC6A15DCEF6A0019ACA8 .... in Resources */, ======= 52FD7F3D15DCEAEF009E9322 ... in Resources */, >>>>>>> .r269
现在删除那些<<<<<<< .mine
, =======
和>>>>>>> .r
<<<<<<< .mine
行,所以它看起来像这样
9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */, 52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */,
现在保存并打开你的Xcode项目并构build它。 一切都会好起来的。
我得到了这个完全相同的错误,因为cordova将允许您创build一个项目中的空格,Xcode不知道如何处理。
穆罕默德的回答是非常有帮助的(并帮助导致我的修复)。 但是,简单地删除>>>>>>> ======= <<<<<<<不足以解决project.pbxproj(对我来说)的parsing问题,保持两个分支合并后。
我在project.pbxproj文件的PBXGroup部分(其开始由类似下面的块注释表示:/ * Begin PBXGroup section * /)中出现合并冲突。 但是,我遇到的问题也可能发生在project.pbxproj文件中的其他地方。
下面是我遇到的合并冲突的简化:
<<<<<<< HEAD id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; ======= id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; >>>>>>> branch name sourceTree = "<group>"; };
当我删除合并冲突标记这是我留下的:
id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = "<group>"; };
通常情况下,删除合并冲突标记将修复project.pbxproj文件中的分析问题,并恢复工作空间的完整性。 这一次没有。
以下是我所做的解决这个问题:
id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = "<group>"; }; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = "<group>"; };
我实际上不得不在第一个PBXGroup的末尾添加两行。
你可以看到,如果我select放弃Head或者合并分支的更改,那么就不会有parsing问题了! 但是,在我的情况下,我想保留从每个分支添加的两个组,只是删除合并标记是不够的; 我不得不在project.pbxproj文件中添加额外的行,以保持正确的格式。
所以,如果你在解决所有的合并冲突之后遇到了parsing问题,你可能想仔细看一下.pbxproj并确保没有任何格式化问题!
对Xcode项目文件的可视化分析并没有帮助我在合并之后find错误。 看到syslog发现这样的行时,Xcode试图parsing文件:
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.
修好后,该项目可以打开好的。
我有类似的问题。
以下是解决它的步骤:
-
导航到您的
projectName.xcodeproj
所在的文件夹。 -
右键单击并select“
Show Package Contents
”。 您将能够看到具有.pbxproj
扩展名的文件列表。 -
select
project.pbxproj
。 右键单击并使用“Text Edit
”打开此文件。 -
您将可以看到
<<<<<< .mine
,============
和>>>>>>>>>> .r123
。 这些通常是从SVN进行更新时产生的冲突。 删除这些并保存文件。 -
现在,您将能够打开项目而不会出现任何错误消息 。
我遇到了同样的问题。 我一直通过git删除生成的string,但Xcode仍然拒绝打开.xcodeproj文件。 但一切都是正确的,没有丢失括号等。最后,我试图退出Xcode和Xcodeclosures时打开项目..然后它的工作。 我希望这可以帮助别人。
编辑:
为了解决你的.xcodeproj文件中的冲突,你可以使用这个方便的脚本:
- 在您的项目目录中创build空的.sh文件(例如resolve_conflicts.sh)
-
这是脚本:
projectfile =
find -d . -name 'project.pbxproj'
-name'project.pbxproj'projectdir =echo *.xcodeproj
projectfile =“$ {projectdir} /project.pbxproj”tempfile =“$ {projectdir} /project.pbxproj.out”savefile =“$ {projectdir} /project.pbxproj .mergesave”cat $ projectfile | grep -v“<<<<<<< HEAD”| grep -v“=======”| grep -v“^ >>>>>>>”> $ tempfile mv $ tempfile $ projectfile
-
使用sh命令从terminal运行它:sh resolve_conflicts.sh
还原project.pbxproj
svn revert –filename–
这听起来像你将不得不在Xcode中创build一个新的项目,进入旧的目录,并拖动所有的源文件,笔尖和资源到新项目的Xcode文件边栏中。 除非你真的用自定义的构build设置或目标做了很多工作,否则不要花费几分钟的时间。 要么,要么还原到源代码pipe理中的最后一次签入,并手动添加现在和之后更改的任何代码文件。
一旦你重新开始工作,你应该考虑使用subversion或mercurial来进行备份和修改控制。 请记住,他的电子并不总是在他们应有的位置上,而且经常会提前备份!
改变你当前的项目文件夹nam和checkout模块相同的project.then添加当前的文件更改。
只需检查project.pbproject文件,并对项目文件的工作版本进行比较。
当你从版本控制系统发布冲突时,通常会发生这样的情况: 用户文件无法在MAC iPhone SDK中的Subversion中进行分析
尝试在行之间findHEAD和_HEAD,并在project.pbxproj中删除这些单词。 在做这个之前备份这个文件
转到PhoneGapTest >>平台然后删除文件夹ios之后去terminal,然后键入:sudo phonegap生成ios之后,你可以运行项目
这是因为项目名称不能在它们之间留有空格
在几乎每周的svn之后,subversion会破坏我的项目文件。 我试图找出为什么现在这样做,并遇到了这个问题。