SwiftGenPlugin

SwiftGen 代码生成插件,适用于任何机器上的 Swift 包。无需安装,只需将该包添加到 Package.swift 的依赖项中即可。

  dependencies: [
    .package(url: "https://github.com/SwiftGen/SwiftGenPlugin", from: "6.6.0")
  ]

将其用作(预)构建工具

将 SwiftGen 添加为预构建工具将在每次构建之前执行它并生成您的文件。

添加到 Package.swift

将依赖项添加到 Package.swift 后,在您希望运行它的任何目标中包含 SwiftGenPlugin 插件。

  targets: [
    .target(
      name: "YourTargetName",
      dependencies: [],
      plugins: [
        .plugin(name: "SwiftGenPlugin", package: "SwiftGenPlugin")
      ]
    )
  ]

添加 SwiftGen 配置

按照配置文件格式向您的项目添加一个 swiftgen.yml 文件,并将每个输出路径加上前缀 ${DERIVED_SOURCES_DIR}/。 或者通过将 output_dir 设置为该值,在您的配置中全局设置此项。

请查看此仓库的swiftgen.yml以获取示例。

支持多个目标

每次调用该插件时,它将在以下两个位置查找 swiftgen.yml 配置文件:

  1. 您的包的根目录(与 Package.swift 相同的文件夹)。
  2. 您的目标文件夹,例如 Sources/MyExample

它将为找到的每个配置文件调用 SwiftGen,因此您可以选择任一选项,或将两者结合使用。 如果您需要一些特定于目标的配置和一些共享配置,而无需重复自己,这将很有用。

请注意,配置中的路径(到资源)需要根据配置的所在位置进行更改

  1. 根配置需要资源的完整路径,例如 Sources/MyExample/Resources/Localizable.strings。 或者将配置的 input_dir 设置为 Sources/MyExample/Resources。 请参阅顶级配置的示例
  2. 目标配置需要资源的相对路径,例如 Resources/Localizable.strings。 或者将配置的 input_dir 设置为 Resources。 请参阅特定于目标的配置的示例

将其用作命令

您可以使用以下命令手动调用 SwiftGen

swift package --allow-writing-to-package-directory generate-code-for-resources

该命令将自动搜索每个目标(或顶级)文件夹中的 swiftgen.yml 配置文件,并为它们调用 SwiftGen。

如果要手动提供配置文件和其他设置,请将它们作为额外的参数传递

swift package --allow-writing-to-package-directory generate-code-for-resources --config MyConfig.yml

许可

此代码和工具受 MIT 许可证的保护。 请参阅此存储库中的 LICENCE 文件。

致谢

这些插件由 SwiftGen 提供支持。

目前主要由 @AliSoftware@djbe 维护。 但我非常感谢所有其他 贡献者,他们在不同版本中为该工具做出了贡献,帮助 SwiftGen 变得如此出色! 🎉

如果您想贡献,请随时打开一个 Pull Request,甚至加入团队!