用途:为 iOS/tvOS 项目提供 SwiftGen 的决策框架,帮助判断何时引入类型安全资源生成,以及如何配置模板、组织资源与设置构建阶段。
主要能力:给出决策树,例如资源或字符串超过 20 个、团队共享资源、资源频繁变更或存在 CI/CD 时建议使用 SwiftGen;小于 10 个且为个人项目则收益有限。模板选择方面,字符串层级键用 structured-swift5,扁平键用 flat-swift5,图片、颜色、字体用 swift5,Storyboard 用 scenes-swift5。资源组织按规模分为单一 Assets.xcassets、按功能拆分、按模块拆分及独立设计系统目录。构建阶段建议放在 Compile Sources 之前,可每次构建运行,也可指定输入输出文件实现增量构建。
使用方式:通过 swiftgen.yml 配置输入输出,常用参数包括 publicAccess、enumName、allValues、preservePath。生成代码应使用 Asset.Icons.home.image、L10n.Auth.Login.title 等常量,避免字符串字面量。共享模块需设置 publicAccess: true。构建脚本中先用 which swiftgen 检查可用性,缺失时输出警告而非失败。生成文件建议加入 .gitignore,swiftgen.yml 与源资源应提交。
限制与注意:不要修改生成文件,应通过扩展文件补充;Run Script 不能放在 Compile Sources 之后;多目标项目需注意 BundleToken;字符串键应保持一致的层级命名。资料未提供具体版本要求、安装步骤细节或性能数据。