如何在Xcode中列出一个目标的所有文件

时间:2018-10-29 11:57:23

标签: ios xcode

是否可以使用XC命令列出一个目标的所有文件?

enter image description here

1 个答案:

答案 0 :(得分:0)

不幸的是,我没有意识到构建脚本可用的任何环境变量。

据我所知,最好的方法是打开pbxproj包中的xcodeproj文件并进行解析。幸运的是,它似乎是纯文本格式compatibleplists。您可以调用plutil命令将其转换为XML或json,以供其他工具/命令使用(如果您这样做)。如果需要此列表作为构建的一部分,则可以利用“运行脚本”构建阶段。如果对您有用,也可以直接使用该文件实例化一个NSDictionary

plist非常简单。它由带有一些版本字符串的root字典和一个巨大的objects字典组成。每个对象都具有isa类型,而您感兴趣的对象是PBXNativeTarget类型。扫描直到找到name键具有正确值的目标。找到目标后,请查看其buildPhases; AFICT buildPhases中的第一项是相应PBXSourcesBuildPhase对象的键。该构建阶段对象具有一个files数组,该数组包含另一组ID(每个编译到目标中的文件一个ID)指向PBXBuildFile对象,该对象的字符串为fileRef 另一个对象的键,这次是PBXFileReference。该对象最终具有一个path键,它将作为源文件的路径。

等等...我说“简单”吗?