在Linux上解析.pbxproj文件

问题描述

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

是否有其他解决方案/解析此文件的方式?我们的目标是验证所有文件都包含在多个xcode目标中。

解决方法

如果您熟悉红宝石,则可以使用Xcodeproj宝石。它使您可以直接解析pbxproj文件,而无需转换为xml

,

正如您已经发现的,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 环境。