【问题标题】:Adding a two new phases to an Xcode framework project向 Xcode 框架项目添加两个新阶段
【发布时间】:2016-06-21 22:49:49
【问题描述】:
我正在构建用 Objective-C 编写的a project on Github。它将 MAC 地址解析为制造商详细信息。查找表当前存储为文本文件manuf.txt(来自 Wireshark 项目),在运行时进行解析,成本很高。我更愿意在构建时将其编译为存档对象,然后加载它。
我想修改构建阶段,以便:
- 构建一个简单的编译器
- 运行编译器,解析
manuf.txt并输出归档对象
- 构建框架
- 将归档对象复制到框架中
我正在寻找有关如何使用 Xcode v7.3 实现步骤 1 和 2 的智慧,因为 Xcode 仅提供 Copy Files 阶段或 Run Script 阶段。其他实现类似目标的项目的例子将是鼓舞人心的。
【问题讨论】:
标签:
objective-c
xcode
nskeyedarchiver
【解决方案1】:
我怀疑您的要求是可能的,但很棘手。原因是您需要编写一堆类文件,然后将它们动态添加到项目中。
首先,您需要使用运行脚本阶段从命令行运行各种工具来解析您的文件并从中生成许多类文件。我建议研究各种模板引擎。例如appledoc 使用 mustache 模板生成 API 文档文件。您可以使用相同的技术来生成头文件和实现文件。
接下来,与其生成归档对象,不如尝试将其导入框架。我认为您最好生成原始源代码,将其添加到项目中并编译到框架中。从长远来看可能更简单。
要自动包含我要查看的生成代码(这意味着我实际上还没有尝试过这个:-) 添加对项目的文件夹引用而不是 Xcode 组。文件夹引用是“将文件添加到...”对话框中的一个选项。
文件夹引用引用一个目录并自动将该目录的全部内容添加到项目中。因此,您可以使用 one 指向您生成源代码的目录。这比试图操纵项目或将东西注入到已建立的框架中要好得多。
【解决方案2】:
我希望在运行时解析文件。启动后,您可以查找已经存在的输出,否则解析一次。
但是,我必须在 Objective-Cloud 做类似的事情。我只是添加了一个运行脚本构建阶段并将编译器调用放入其中。