我在使用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操作系统。
我在使用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操作系统。
这是检测错误发生在哪一行的最佳方法之一。
只需进入包含 plist 文件的目录,然后在终端中输入此命令->
plutil filename.plist
这个问题的另一个原因可能是尝试将URL(实际上只是斜杠等)放入您的app-Info.plist中。
解决方法是在您的项目构建设置中的Info.plist Other Preprocessor Flags
选项中提高-traditional
标志。
我想你可能已经使用过源代码控制工具,你可以使用基本的文本编辑工具而不是 Xcode 来打开这个 plist 文件,使用 command + F 查找 "<<<<<" 或者 ">>>>>" 字符串,然后你可能会发现类似以下的错误信息:
<<<<<<< .mine
>>>>>>> .r605
选择正确的字符串,删除另一个,错误已解决!
当git合并出现冲突时,我个人破坏了文件。.plist是一个XML文件,git冲突会在其中添加<<<<和>>>>以标记差异。
在Finder中找到项目文件夹中的.plist文件。使用文本编辑器打开它,找到不像正确XML的行,将其删除,并确保删除重复的XML行/节点(由于git记录的更改之前和之后)。
TargetName/Info.plist
之后:
TargetName/Resources/Info.plist
<key>UIInterfaceOrientation</key>
<string></string>
</string>
我遇到了同样的错误,并意识到问题是我的 Info.plist 中有一个 URL(例如 http://example.com/something
)作为值,而我只是在它上面开启了预处理(没有使用 -traditional
标志)。显然,Xcode 将把 //
视为注释标记,并省略其余部分。
我发现的一种解决方法是采用预处理器,如下所示:http:/${}/example.com/something
,这通过在中间放置一个空字符串替换来打破 //
,使其不像 Xcode 的注释,但在预处理后它又变回了正常的 URL。
Info.plist
文件内容。 - Jaime Hablutzel