答案 0 :(得分:0)
不幸的是,我没有意识到构建脚本可用的任何环境变量。
据我所知,最好的方法是打开pbxproj
包中的xcodeproj
文件并进行解析。幸运的是,它似乎是纯文本格式compatible和plists
。您可以调用plutil
命令将其转换为XML或json,以供其他工具/命令使用(如果您这样做)。如果需要此列表作为构建的一部分,则可以利用“运行脚本”构建阶段。如果对您有用,也可以直接使用该文件实例化一个NSDictionary
。
plist
非常简单。它由带有一些版本字符串的root
字典和一个巨大的objects
字典组成。每个对象都具有isa
类型,而您感兴趣的对象是PBXNativeTarget
类型。扫描直到找到name
键具有正确值的目标。找到目标后,请查看其buildPhases
; AFICT buildPhases
中的第一项是相应PBXSourcesBuildPhase
对象的键。该构建阶段对象具有一个files
数组,该数组包含另一组ID(每个编译到目标中的文件一个ID)指向PBXBuildFile
对象,该对象的字符串为fileRef
另一个对象的键,这次是PBXFileReference
。该对象最终具有一个path
键,它将作为源文件的路径。
等等...我说“简单”吗?