xCode无法解析Unity项目。

6
我正在使用Unity开发一个iOS项目,并通过导出到Xcode来构建它(像我一直以来做的那样)。
但是,每当我尝试在Xcode中打开“Unity-iPhone.xcodeproj”时,就会出现以下错误:
“无法打开项目,因为无法解析项目文件。”
我已经到处查找,但无法弄清楚原因。
以下是一些可能的解决方法:
1. 项目名称中没有任何空格。 2. 我已检查了“.plist”文件,一切看起来都很正常。 3. 包标识符与“.plist”中的匹配。
这在以前的项目中有效,但现在我不知道为什么会出现此错误。请问是什么原因呢?

https://dev59.com/TXRC5IYBdhLWcg3wP-n5 - Mick MacCallum
1
我尝试过了... 当我打开我的 .pbxproj 文件时,它不包含任何 "===" 或 "<<<" 的东西... 所以这不是错误的原因。 - freddrock
6个回答

35

今天,我遇到了这个问题(Unity Ver. 5.5 Windows Based 系统)。

当我尝试打开我的Windows导出的iOS项目时,我得到了"(..)the project file cannot be parsed"的错误提示。所以,我决定查看位于以下路径的项目文件:

{Project path}/Unity-iPhone.xcodeproj/project.pbxproj

它是一个纯文本文件,因此您可以使用任何文本编辑器。

我发现有一行引号不匹配。它是:

shellScript = "\"$PROJECT_DIR/MapFileParser.sh\""\nrm -rf \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data/Raw/QCAR\"";

为了解决这个问题,只需删除以下引号:

(...)MapFileParser.sh\" " \n(...)

修改为:

(...)MapFileparser.sh\" \n(...)

然后在xCode中就能正确解析了。

这是自动化的笔误错误!祝你好运!


我在文件中发现了不止一个""\nrm实例,请将它们全部替换掉。 - Kyle
救了我的一天。谢谢,伙计。 - Nicks
谢谢!截至今天2018.1.0f2,这仍然是相关的。 - Dino

1

好的,在几天的时间里,我找到了问题所在,所有问题都与插件导入的*.a文件的命名有关。

XCode不允许文件名中有空格(当然),但我没有注意到3个插件的*.a文件中有空格。

移除这些插件后(我有其他做同样事情的插件),xCode能够解析构建并为我创建一个项目!

小心空格!


0

使用不兼容的Xcode版本?
您正在使用插件吗?大多数插件会修改项目。

尝试创建一个新项目并进行构建。如果可以工作,那么是插件的问题,否则就是Xcode版本的问题。


尝试使用资产创建新项目,但不起作用。不过我找到了解决方案,将要发布它。 - freddrock

0

我的问题与Dropbox有关。

我使用PC进行开发,使用Mac在Xcode中构建,因此我将项目存储在Dropbox中。有时,从PC到Mac传输时,Dropbox可能会损坏.pbxproj甚至是.plist文件,因此当我尝试在Mac上打开项目时,Xcode会抛出上述解析错误。

我不得不在PC端压缩Xcode项目文件夹,然后在Mac端将其从Dropbox文件夹中取出并解压缩。然后将其移回原来的位置。这很麻烦,但它起作用了。


0
今天遇到了同样的问题(Unity 2017.1.1)。
与上面的答案无关。我只是在 iOS 的 Player Settings 中的 Profile ID 中犯了一个错误:Edit > Project Settings > Player > iPhone, iPod Touch and iPad Settings > Other Settings > Identification

enter image description here


0
这周在Unity 2017.2中遇到了这个问题(在Windows上构建,然后将构建文件复制到Mac上用于Xcode),我可以确认按照Anibal Itriago所描述的修复shell脚本行中的双引号的方法在我的情况下有效。即使是完全空白的iOS项目并且禁用了Vuforia也无法解析,但是这行修复似乎解决了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接