【问题标题】:Xcode "Cannot parse contents of Info.plist"Xcode“无法解析 Info.plist 的内容”
【发布时间】:2013-11-07 15:45:28
【问题描述】:

我不想解析我的 Info.plist 文件的 xCode 碰了壁。我已经用以前备份的文件的旧(相同)版本替换了该文件几次,但我仍然遇到相同的错误。

这是完整的错误信息:

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,小牛队

【问题讨论】:

  • 分享您的Info.plist 文件的内容。

标签: xcode compiler-errors plist


【解决方案1】:

这是检测错误发生在哪条线上的最佳方法之一。

只要去plist文件所在的目录然后在终端上写这个命令->

plutil filename.plist

【讨论】:

  • 我知道 SO 已经厌倦了感恩,但是这个小提示让我很开心!我最终会用文本编辑器找到合并指示器,但该实用程序将我指向它!谢谢!
  • 完美答案。运行命令,它给了我行号。通过xcode,右键plist,作为源代码打开就行了。事实证明,捆绑编号重复了 2 次。所以我删除了一个。清洁和建造。项目运行成功。
  • 这特别有用,因为您的 plist 可以是有效的 xml,但仍然是无效的 plist
  • 钉得像查克诺里斯!
【解决方案2】:

此问题的另一个原因可能是尝试将 URL(实际上只是斜杠等)放入您的 app-Info.plist。

只需在项目构建设置中的 Info.plist Other Preprocessor Flags 选项内提高 -traditional 标志即可绕过它。

【讨论】:

  • 天哪,太晦涩难懂了,但它解决了我的问题!谢谢!!就我而言,我的 plist 中有一个 Sparkle SUFeedURL,这显然导致预处理器发疯。你在哪里找到-traditional的文档??这是什么意思?
【解决方案3】:

我想你已经使用了源代码控制工具,你可以使用基本的文本编辑工具而不用 Xcode 打开这个 plist,command + F 找到“>>>>”,然后您可能会发现错误字符串,例如:

<<<<<<< .mine

>>>>>>> .r605

选择正确的字符串,删除另一个,错误解决!

【讨论】:

    【解决方案4】:

    看起来像用备份替换文件,然后在 Organizer 中删除项目的派生数据是解决办法。希望这对以后的其他人有所帮助。

    【讨论】:

    • 我尝试替换 plist 文件以及项目文件,但仍然出现错误。啊!
    【解决方案5】:

    当 git merge 引发冲突时,我个人破坏了文件。 .plist 是一个 XML 文件,并且 git 冲突在其中添加了 >>> 以标记差异。

    在 Finder 中找到 .plist 文件(在您的项目文件夹之一中)。在文本编辑器中打开它,找到看起来不像正确 XML 的行,删除它们并确保删除重复的 XML 行/节点(由于 git 记录的前后变化)。

    【讨论】:

      【解决方案6】:

      在为 iOS 构建时,只要将 Default Orientation 设置为 Auto Rotation,Info.plist 就可能会损坏。 Info.plist 文件在第一次构建时正确创建,但后续构建会导致...

      <key>UIInterfaceOrientation</key>
      <string></string>
      </string>
      

      ...此时 Xcode 无法构建项目。

      【讨论】:

      • 除了删除文件并重新生成之外,还有其他解决方法吗?
      • 我遇到了同样的错误,按照@Vizllx的做法,还是错误。然后我用Sublime Text打开info.plist,发现代码冲突。
      【解决方案7】:

      这也可能只是因为您将 Info.plist 文件移动到了一个新文件夹中,或者将其从文件夹中删除(基本上,如果它的路径改变了)。

      转到构建设置并搜索“Info.plist 文件”。编辑值。例如,如果您已将 plist 文件从主文件夹移动到名为 Resources 的子文件夹,则必须进行以下更改:

      之前:

      TargetName/Info.plist
      

      之后:

      TargetName/Resources/Info.plist
      

      【讨论】:

        【解决方案8】:

        我遇到了同样的错误,并意识到问题是我的 Info.plist 中有一个 URL(例如 http://example.com/something)作为值,我刚刚打开了预处理(没有 @987654322 @ 旗帜)。显然 Xcode 会将// 视为注释标记,并省略该行的其余部分。

        我发现的一种解决方法是采用预处理器,如下所示: http:/${}/example.com/something,它通过在中间放置一个空字符串 substation 来分解 //,因此它看起来不像 Xcode 的注释,但经过预处理后它又回到了正常的 URL。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多