ios 项目...无法打开xcodeproj,因为它缺少其项目.pbxproj文件

nhn9ugyo  于 2023-02-01  发布在  iOS
关注(0)|答案(9)|浏览(383)

我尝试合并分支,但导致错误“无法打开项目...无法打开,因为无法解析项目文件"。然后我尝试采纳其他stackoverflow响应的建议(即编辑文件以清除损坏),但无法编辑文件。看来这实际上是一个目录,因此,可能在Xcode版本4.4中以及在编写Unable to open project... cannot be opened because the project file cannot be parsed的响应后,此结构发生了变化。
然后我尝试从我的时间机器备份中恢复myProject.xcodeproj,但这不起作用,因为它说我没有访问myProject.xcodeproj的权限。我尝试更改该目录的权限,但没有帮助。
我关闭并重新打开xcode,现在错误是:

无法打开项目...xcodeproj,因为它缺少其项目.pbxproj文件

我如何在xcode版本4.4中修复这个问题?它可以从xcode中以前的快照或存档或版本中恢复吗?它可以用时间机器恢复吗?我希望避免重建整个项目。

8dtrkrch

8dtrkrch1#

最简单的方法可能是
1.从源代码管理中 checkout myProject.xcodeproj。这将包含上次导致冲突的更改。
1.重做自上次提交到源代码管理以来所做的项目更改
1.提交/推送到源代码管理。
将来,当您在项目文件中遇到冲突时,请查看myProject.xcodeproj/project. pbxproj。通常情况下,这只是项目中添加到相同位置的新文件。在这种情况下,您只需删除冲突元数据并解决冲突状态。

ss2ws0br

ss2ws0br2#

最后,我要做的就是

'cp -R ...TimeMachineBackup/myProject.xcodeproj ...myProjectArea/myProject.xcodeproj'

然后我必须在myProjectArea中执行以下操作:

git reset --merge

这允许我打开项目并将分支切换回主分支。
不愉快的经历

xeufq47z

xeufq47z3#

另一种可能发生这种情况的方法是,如果您出于某种原因在pod或编辑器中使用了sudo--如果文件存在于yourApp.xcodeprojectroj目录下,但xcode抱怨找不到它--转到您的项目根目录并执行以下操作:

sudo chown -R yourusername:staff ./*
qc6wkl3g

qc6wkl3g4#

对于其他关注这个问题的人来说,在我的案例中,原因是来自git合并的“冲突文本”悄悄进入了实际文件:

<<<<<<< HEAD
                F0FDA2D61B99EB80007DB99D /* Aptron-mCollegix.xcassets */,
=======
                F08CFAAA1BC1E9EE00A5B6F5 /* Aptron-mCollegix.xcassets */,
>>>>>>> hotfix/Column_Text_Cut-off

在文本编辑器中打开project.pbxproj使修复变得很容易。

moiiocjp

moiiocjp5#

我能够让这个工作没有命令行的东西,像这样:
1.转到Finder中的Time Machine驱动器。
1.导航至所需备份。
1.将其拖动到所需位置。这将报告没有访问. pbxproj的权限
1.右键单击刚刚拖出的xcodeproj,选择"显示内容"。
1.右键单击Time Machine备份文件夹中的xcodeproj,选择"显示内容"。
1.将您在里面看到的. pbxproj拖动到您刚才在#3中通过拖动创建的目的地。
现在应该可以了。

sf6xfgos

sf6xfgos6#

我找到了自己解决这个问题的办法。
这个bug的原因是. xcodeproj文件缺少包含它的pbxproj文件,对吗?这通常出现在右键单击. xcodeproj文件并点击'显示包内容'时。然而,在您自己的例子中,由于git版本控制的一些错误或其他原因,它已经被删除了。
由于你不能真正生成一个. pbxproj文件,我找到的解决方案是转到原始项目文件夹位置,我曾使用它来创建存储库。老实说,你可能也可以简单地创建一个新项目,只要它有相同的bundle标识符等等!由于这个项目的xcodeproj文件将正确地包含一个. pbxproj文件,用您自己的项目文件替换XCode环境中的文件将允许. pbxproj文件基于这些文件进行更新。
因此,打开此原始项目文件夹后(/new project文件夹),在XCode环境中,然后我删除了项目中的所有文件,并将它们替换为我的项目中的相应文件,我无法打开xcodeproj文件。我不得不修复一些由此产生的bug,涉及构建阶段的东西等等不排队,假设你刚刚复制了一堆新文件,但是在修复了一些小错误之后,同一个项目在这个新的位置最终能够运行没有问题!
最后,我使用这个成功运行的项目版本,并将所有文件(. xcodeproj文件、项目文件夹、测试文件等)复制到原始存储库位置,在此之前从存储库中删除这些文件,以避免文件覆盖的混乱(如果希望安全,可以将旧的存储库文件剪切并粘贴到新位置,不要想删除它们!)然后在XCode中从存储库位置打开项目,在模拟器/设备上构建并运行它,以确保一切正常(并修复您可能需要的任何小bug),瞧!您的项目现在可以提交、推送和运行了!
这不是最干净的解决方案,如果各个分支都已损坏,您可能需要在它们之间执行类似的操作。然而,如果您无法访问Mac时间机器,并且其他解决方案也不适用于您,这可能是重新获得工作. pbxproj文件的最直接的方法!
哦,我把. pbxproj从我的gitignore中删除了。我不确定它是否真的在你的gitignore中找到了,但是我建议你自己对这个主题进行研究,我自己也不确定!
祝你好运!

yzuktlbb

yzuktlbb7#

您似乎可以使用以下命令再次生成该文件:

swift package generate-xcodeproj

尽管您可以看到以下消息:

warning: Xcode can open and build Swift Packages directly. 'generate-xcodeproj' is no longer needed and will be deprecated soon.
generated: ./BokenEngine.xcodeproj

使用xcodebuild > 13.4.1

xcodebuild -version
Xcode 13.4.1
Build version 13F100
yk9xbfzb

yk9xbfzb8#

如果有人想找到丢失的项目.pbxproj文件,然后尝试打开.xcodeproj与一些代码编辑器,你会发现那里的文件.并注意到,我有我的应用程序在我的另一台电脑备份,所以我发现那里的文件,所以你mist有你的项目备份的地方,以便这工作.

2exbekwf

2exbekwf9#

在我的情况下,问题是实际上有2个文件夹与.xcodeproj后缀
1.实际的地址是MyApp/MyApp.xcodeproj
1.不知何故,另一个具有相同名称MyApp.xcodeproj被添加到根文件夹,具有以下内容:

project.xcworkspace/contents.xcworkspacedata
project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

因此,删除此损坏的(?)xcodeproj解决了问题。

相关问题