【问题标题】:Parse .pbxproj files on linux在 linux 上解析 .pbxproj 文件
【发布时间】:2021-03-22 22:27:28
【问题描述】:

我一直在寻找将 .pbxproj 文件转换为 xml 文件以用于解析 CI 管道的方法。在mac上,我可以使用“plutil -convert xml1 ”,它工作得很好,但是Linux的开源plist解析工具是full of bugs并且失败(即使在调试模式下),基本的“无法转换plist文件” .

是否有任何替代解决方案/方法来解析此文件?我们的目标是验证所有文件是否包含在多个 xcode 目标中。

【问题讨论】:

  • 我不知道解析,但你可以用 XcodeGen 生成 Xcodeproj。在 XcodeGen 的 YML 配置中,您可以为每个目标提供源目录。
  • 这是否需要我们不断地重新生成 xcodeproj 文件?
  • 不,这不是必需的。我签入 pbxproj 文件,因此我不依赖 XcodeGen。当您重新生成时,请记住配置已更新为您直接在 Xcode 中所做的更改。您不必为现有源目录中的新文件更新配置。
  • 我正在寻找的解决方案将首先防止上传错误的 pbxproj

标签: ios xcode continuous-integration plist


【解决方案1】:

如果你熟悉 ruby​​,可以使用Xcodeproj gem。它允许您直接解析pbxproj文件,无需转换为xml

【讨论】:

    【解决方案2】:

    正如您已经知道的那样,pbxproj 实际上只是一个 plist(我相信是老式的 nextstep 格式;http://www.monobjc.net/xcode-project-file-format.html)。

    为了解析它,你需要能够parse a plist on Ubuntu

    那里有几个选项,包括plist-util,它可以工作,但没有相同的 API。就个人而言,我创建了一个 drop-in replacement for plutil,这样我就不需要更新我们的脚本来分别考虑 Linux 和 Mac 环境了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      相关资源
      最近更新 更多