【问题标题】:Add source code to Xcode target programmatically以编程方式将源代码添加到 Xcode 目标
【发布时间】:2017-08-03 15:03:23
【问题描述】:

我正在使用 protobuf 从 protofiles 生成 swift 类(为此我编写了一个脚本)。现在我需要将所有生成的文件添加到 Xcode 项目中的目标中。

如何以编程方式做到这一点?可能是构建阶段中的脚本或 macOS 中的其他类型的操作(Automator?)?

【问题讨论】:

    标签: ios swift xcode code-generation target


    【解决方案1】:

    CocoaPods 使用该项目修改项目文件:https://github.com/CocoaPods/Xcodeproj

    【讨论】:

    • 可能这是一个很好的解决方案,但对我来说太多了。我的意思是在甚至不使用 CocoaPods 的 iOS 项目中引入 ruby​​ gem 依赖项(因为 Carthage)。更简单的方法是改进项目的 README,其中明确了如何手动添加文件。
    【解决方案2】:

    使用 Xcode 内置的功能可以做到这一点(我们已经用 c++ 做到了,但应该也可以使用 swift):

    在您的目标中,添加与您的原型文件扩展名匹配的自定义 shell 脚本构建规则。

    使用"${INPUT_FILE_PATH}""${SCRIPT_OUTPUT_FILE_0}" 调用您的脚本。

    如果输出文件的扩展名与另一个构建规则匹配,则会执行该构建规则。因此,在您的情况下,将构建规则的输出文件设置为 ${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.swift 以便将其发送到 swift 编译器。

    现在转到目标的编译源构建阶段并添加原型文件。

    【讨论】:

      【解决方案3】:

      您可以通过 Xcode“构建规则”来做到这一点

      检查这个利用“构建规则”生成源代码文件并将它们从protobuf添加到项目中的项目

      https://github.com/microsoft/plcrashreporter

      【讨论】:

        猜你喜欢
        • 2012-02-26
        • 2018-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多