我试图合并分支,导致错误“无法打开项目...无法打开,因为项目文件无法解析”。然后我尝试接受其他stackoverflow响应的建议(即编辑文件以删除损坏),但无法编辑该文件。看起来这实际上是一个目录,所以可能这个结构随着xcode的4.4版本而改变了,因为写了对Unable to open project... cannot be opened because the project file cannot be parsed的回复。
然后我尝试从我的时间机器备份中恢复myProject.xcodeproj。这不起作用,因为它说我没有访问myProject.xcodeproj的权限。我试图更改该目录的权限,但这没有帮助。
我关闭并重新打开xcode。现在错误是:
项目... xcodeproj无法打开,因为它缺少project.pbxproj文件。
如何在xcode 4.4版中修复此问题?是否可以从xcode中的先前快照或存档或版本进行恢复。可以用时间机器恢复。我想避免重建整个项目。
答案 0 :(得分:6)
最简单的事情可能是
将来,当您在项目文件中出现冲突时,请查看myProject.xcodeproj / project.pbxproj。通常,只是项目中的新文件已添加到同一位置。在这种情况下,您只需删除冲突元数据并解决冲突状态。
答案 1 :(得分:5)
最后,我要做的是
'cp -R ...TimeMachineBackup/myProject.xcodeproj ...myProjectArea/myProject.xcodeproj'
然后我必须在myProjectArea中执行以下操作:
git reset --merge
这允许我打开项目并将分支切换回我的主分支。
不是愉快的经历
答案 2 :(得分:2)
我能够在没有这样的命令行的情况下工作:
现在应该可以了。
答案 3 :(得分:1)
对于其他人来看这个问题,我的案例中的原因是,git merge中的“冲突文本”已经悄悄进入实际文件:
<<<<<<< HEAD
F0FDA2D61B99EB80007DB99D /* Aptron-mCollegix.xcassets */,
=======
F08CFAAA1BC1E9EE00A5B6F5 /* Aptron-mCollegix.xcassets */,
>>>>>>> hotfix/Column_Text_Cut-off
在文本编辑器中打开project.pbxproj使修复变得容易。
答案 4 :(得分:0)
如果有人想找到丢失的project.pbxproj文件,则尝试使用一些代码编辑器打开.xcodeproj,您将在此处找到该文件。并请注意,我在另一台PC上备份了我的应用程序,因此我在那找到了该文件,因此您可能在某个地方备份了您的项目,以使其正常工作。
答案 5 :(得分:0)
发生这种情况的另一种方法是,如果您出于某种原因一直使用Pod或编辑器使用sudo-如果该文件存在于yourApp.xcodeprojectroj目录下,但xcode抱怨找不到它-请转到您的项目根目录并做:
sudo chown -R yourusername:staff ./*
答案 6 :(得分:0)
我找到了自己的解决方案。
导致此错误的原因是.xcodeproj文件缺少其包含的pbxproj文件,对吗?当您右键单击.xcodeproj文件并单击“显示包内容”时,通常会出现此内容。但是,根据您自己的情况,由于某些错误或其他git版本控制,它已被删除。
由于您不能真正生成.pbxproj文件,因此我找到的解决方案是转到原始项目文件夹位置,该位置是我用来创建存储库的位置。老实说,您也可以简单地创建一个新项目,只要它具有相同的包标识符!由于该项目的xcodeproj文件将正确包含.pbxproj文件,因此,用您自己的项目文件替换XCode环境中的文件将使.pbxproj文件能够基于这些文件进行更新。
因此,在XCode环境中打开此原始项目文件夹(/ new项目文件夹)之后,我随后删除了项目中的所有文件,并用我无法打开该项目的项目中的相应文件替换了它们。 xcodeproj文件。考虑到您只是复制了许多新文件,我不得不在这里和那里修复一些由此引起的错误,这些问题涉及构建阶段,而且这些工作没有排成一列。但是,在修复了一些小错误之后,位于这个新位置的同一项目最终无法运行!
最后,我采用了此项目的成功运行版本,并将所有文件,.xcodeproj文件,项目文件夹,测试文件及所有文件复制到原始存储库位置,然后从存储库中删除文件,以避免令人困惑的文件覆盖(如果您想安全起见,可以将旧的存储库文件剪切并粘贴到新位置,而不希望删除它们!)。然后从存储库位置在XCode中打开项目,在模拟器/设备上构建并运行该项目,以确保一切都准备就绪(并修复您可能需要的所有小错误),瞧!您的项目现在可以被提交,推送和运行了!
这不是最干净的解决方案,如果各个分支都已损坏,则可能必须在各个分支上做类似的事情。但是,如果您无权使用Mac时光机,而其他解决方案也无法满足您的要求,那么这可能是重新获得有效的.pbxproj文件的最直接的方法!
哦,我从gitignore中删除了.pbxproj。我不确定是否真的可以在您的gitignore中找到它,但是我建议您对这个主题进行自己的研究,不确定自己!
祝你好运!
答案 7 :(得分:0)
使用 xcodegen 库来避免这样的冲突。它有这些特点