首页 > 解决方案 > 如何在 Xcode 中列出一个目标的所有文件

问题描述

有没有可以用来列出一个目标的所有文件的 XC 命令?

在此处输入图像描述

标签: iosxcode

解决方案


不幸的是,我不知道任何可用于构建脚本的环境变量。

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

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

等等……我说的是“简单”吗?


推荐阅读