无法打开项目…无法打开,因为无法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. 

修好后,该项目可以打开好的。

我有类似的问题。

截图1

以下是解决它的步骤:

  1. 导航到您的projectName.xcodeproj所在的文件夹。

    截图2

  2. 右键单击并select“ Show Package Contents ”。 您将能够看到具有.pbxproj扩展名的文件列表。

    截图3

  3. selectproject.pbxproj 。 右键单击并使用“ Text Edit ”打开此文件。

    截图4

  4. 您将可以看到<<<<<< .mine============>>>>>>>>>> .r123 。 这些通常是从SVN进行更新时产生的冲突。 删除这些并保存文件。

    截图5

    截图6

  5. 现在,您将能够打开项目而不会出现任何错误消息

我遇到了同样的问题。 我一直通过git删除生成的string,但Xcode仍然拒绝打开.xcodeproj文件。 但一切都是正确的,没有丢失括号等。最后,我试图退出XcodeXcodeclosures时打开项目..然后它的工作。 我希望这可以帮助别人。

编辑:

为了解决你的.xcodeproj文件中的冲突,你可以使用这个方便的脚本:

  1. 在您的项目目录中创build空的.sh文件(例如resolve_conflicts.sh)
  2. 这是脚本:

    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

  3. 使用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会破坏我的项目文件。 我试图找出为什么现在这样做,并遇到了这个问题。