SwiftGen 教程
SwiftGen 是一个用于生成 Swift 代码的工具,它可以帮助您将各种资源(如 Assets Catalog、Localizable.strings、字体等)转化为强类型常量,提高代码的可维护性和安全性。
1. 项目目录结构及介绍
在您克隆或下载 SwiftGen 项目后,您会看到以下主要目录结构:
SwiftGen/
├── Sources/ # 包含 SwiftGen 工具的源码
│ ├── Core/ # 核心解析器和其他通用代码
│ ├── Parsers/ # 各种输入类型的特定解析器
│ └── ...
├── Templates/ # 用于自定义输出代码模版的地方
├── Tests/ # 测试用例
└── Resources/ # 其他辅助资源
└── ...
Sources
子目录包含 SwiftGen 工具的核心组件,Templates
子目录用于存放默认的 Stencil 模板,您可以基于这些模板自定义您的代码生成规则。Tests
子目录包含了测试用例以确保工具的正确性。
2. 项目启动文件介绍
SwiftGen 的主要入口是命令行工具,它可以直接运行在终端中。通常,您不需要直接修改源码,而是通过安装后的可执行文件 swiftgen
来使用。这个文件位于安装路径下的 bin 目录,例如在 CocoaPods 安装的情况下,位于 {PODS_ROOT}/SwiftGen/bin
。
使用 swiftgen
的基本命令如下:
swiftgen [command] [options] <input>
在这里,command
是要执行的操作(如 xcassets
, strings
等),options
是可选参数,而 <input>
是需要处理的资源文件路径。
3. 项目的配置文件介绍
SwiftGen 使用 YAML 格式的配置文件 swiftgen.yml
来定义如何生成代码。首次使用时,可以通过运行 swiftgen config init
命令创建一个初始配置文件。配置文件允许您指定要运行的解析器以及它们的参数。
以下是配置文件的一个示例:
inputs:
- path/to/xcassets
- path/to/localizable.strings
outputs:
- templateName: swift5
path: Generated/Constants.swift
params:
customNamespace: MyProject
parsers:
- xcassets
- strings
在这个配置文件中:
inputs
: 指定要分析的资源文件或目录。outputs
: 指定生成的代码文件的位置和使用的模板。templateName
: 指定使用的代码模板,这里使用的是 Swift 5 默认模板。path
: 输出代码的相对路径。params
: 可选参数,可以用来定制模板中的行为,例如自定义命名空间。
了解以上内容后,您应能够开始使用 SwiftGen 为您的项目自动化资源代码生成。记得根据实际需求调整配置文件,并保持其更新以适应项目的变化。