我刚用xCode打砖墙,不想解析我的Info.plist文件。我已经用我之前备份的文件的旧版本(相同版本)多次替换了该文件,但我仍然遇到同样的错误。
以下是完整的错误消息:
couldn't parse contents of '/Users/...Info.plist': The data couldn’t be read because it isn’t in the correct format.
我对这一点毫无头绪。我正在使用xCode 5.0.1,Mavericks
答案 0 :(得分:62)
这是检测错误发生在哪一行的最佳方法之一。
只需转到plist文件所在的目录,然后在terminal->
上写下此命令plutil filename.plist
答案 1 :(得分:14)
此问题的另一个原因可能是尝试在您的app-Info.plist中放置URL(实际上只是斜杠等)。
只需在项目构建设置中提升-traditional
选项中的Info.plist Other Preprocessor Flags
标记即可绕过它。
答案 2 :(得分:4)
我认为你已经使用了源代码控制工具,你可以使用没有Xcode的基本文本编辑工具来打开这个plist,命令+ F来查找"<<<<<<<&#34 ;或者">>>>>",然后您可能会找到错误字符串,例如:
<<<<<<< .mine
>>>>>>> .r605
选择正确的字符串,并删除另一个字符串,错误就解决了!
答案 3 :(得分:2)
看起来像用备份替换文件,然后在Organizer中删除项目的派生数据就是治愈方法。希望这可以帮助别人以后。
答案 4 :(得分:2)
当git merge引发冲突时,我个人破坏了该文件。 .plist是一个XML文件,并添加了git冲突&lt;&lt;&lt;&lt;和&gt;&gt;&gt;&gt;在那里标记差异。
在Finder中找到.plist文件(在您项目的一个文件夹中)。在文本编辑器中打开它,找到看起来不合适的XML的行,删除它们并确保删除重复的XML行/节点(由于git记录的前后更改)。
答案 5 :(得分:1)
为iOS构建时,只要“默认方向”设置为“自动旋转”,Info.plist就可能会损坏。 Info.plist文件在第一次构建时正确创建,但后续构建会导致...
<key>UIInterfaceOrientation</key>
<string></string>
</string>
......此时Xcode无法构建项目。
答案 6 :(得分:0)
我遇到了同样的错误,并意识到问题是我在我的Info.plist中有一个URL(例如http://example.com/something
)作为值,我只是为它开启了预处理(没有-traditional
标志)。显然Xcode会将//
视为注释标记,并省略其余部分。
我找到的解决方案是接受预处理器,如下所示:
http:/${}/example.com/something
,它通过在中间放置一个空字符串变电站来分解//
,因此它看起来不像是对Xcode的评论,但在预处理后它又回到了一般网址。
答案 7 :(得分:0)
这也可能是由于您已将Info.plist文件移动到新文件夹或从文件夹中删除(基本上是在路径更改的情况下)而导致的。
转到“构建设置”,然后搜索“ Info.plist文件”。编辑值。例如,如果您已将plist文件从主文件夹移至名为Resources的子文件夹,则必须进行以下更改:
之前:
TargetName/Info.plist
之后:
TargetName/Resources/Info.plist