GitHub 鏈接:SwiftGenConfigForSwiftUI
使用環(huán)境
- Swift 5
- SwiftUI
- 不使用 storyboard 和 xib
- 不勾選 Use Base Internationalization
- 本地化(默認英語)
已驗證適配部分
- String 資源
- xcassets 圖片資源
- xcassets 顏色資源
安裝
brew install swiftgen
配置
配置文件
配置文件下載位置:config files
將三個配置文件放置在項目根目錄下:
- swiftgen.yml:SwiftGen 配置文件
- swiftui-assets-template.stencil:與 SwiftUI 適配的 xcassets 模板
- swiftui-strings-template.stencil:與 SwiftUI 適配的 String 模板
項目結構參考:
${PROJECT}
├── swiftgen.yml
├── swiftui-assets-template.stencil
├── swiftui-strings-template.stencil
└── ${PROJECT}
├── Generated
├── Resources
│ ├── Color.xcassets
│ ├── Image.xcassets
│ └── Localizable.strings
├── App.swift
├── ContentView.swift
├── Info.plist
├── InfoPlist.strings
├── ${PROJECT}.entitlements
└── Preview Content
添加編譯腳本
- 點擊導航欄的項目文件
- 選擇 TARGETS - Build Phases
- 點擊窗口左上角 + 按鈕法梯,選擇 New Run Script Phase
- 添加一句腳本
swiftgen
生成索引輔助類
- ?B 執(zhí)行項目編譯
- 左側文件導航欄中右鍵:Add Files to …
- 選擇在 Generated 目錄下生成的文件,添加到項目中即可(不要勾選復制)
在 SwiftUI 中使用
Image(Asset.Image.image_name.name) // 圖片類資源
Text(L10n.text_name.key) // 文本類資源
.foregroundColor(
Asset.Color.color_name.color // 顏色資源
)
L10n.text_name.text // 返回 String 類型
Asset.Color.color_name.nsColor // 返回 NSColor 類型
Asset.Color.color_name.uiColor // 返回 UIColor 類型
其他
配置文件語法參考:
SwiftGen/ConfigFile.md at stable · SwiftGen/SwiftGen · GitHub
關于對 SwiftUI(LocalizedStringKey) 提供支持的討論:
SwiftUI use of LocalizedStringKey · Issue #685 · SwiftGen/SwiftGen · GitHub