SF Symbol generator 是一个专为 Xcode 开发者设计的命令行工具,用于将自定义 SVG 图标转换为符合 SF Symbols 规范的 symbolset 资源目录。该工具通过自动化处理 SVG 文件与 SF Symbols 模板的整合,帮助开发者在项目中快速集成自定义符号,而无需手动调整坐标、尺寸或 JSON 配置文件。它支持两种生成模式:一种是直接生成原始 symbolset(适用于简单场景),另一种是基于 SF Symbols 官方模板注入路径数据(推荐使用),后者能确保生成的符号在不同权重和尺寸下保持视觉一致性。整个流程高度标准化,自动验证输入文件的合法性,并智能计算路径边界以适配 SF Symbols 的设计规范。
核心功能特点
- 支持从任意 SVG 文件生成完整的 .symbolset 资源目录,包含 Contents.json 和多个尺寸的 SVG 变体
- 提供两种生成模式:原始 symbolset 输出与基于 SF Symbols 模板的智能注入(推荐)
- 自动验证 SVG 文件的 viewBox 属性及路径结构,确保符合 SF Symbols 兼容性要求
- 智能计算路径边界并在 SF Symbols 模板中居中定位,避免边缘裁剪或偏移问题
- 支持自定义资产目录路径,可通过环境变量 SFSYMBOL_ASSETS_DIR 灵活指定输出位置
适用场景
该工具特别适合需要在 iOS、macOS 或 watchOS 应用中引入品牌专属图标或特殊功能标识的开发者。例如,当 App 需要展示公司 Logo、内部工具图标或特定状态指示符时,直接使用系统 SF Symbols 无法满足品牌差异化需求,此时便可通过此工具将设计稿中的 SVG 转化为可集成的 symbolset。尤其适用于采用组件化架构的项目,其中 UI 组件库依赖统一的符号系统以提升维护效率。另一个典型场景是团队协作开发中,设计师交付的矢量图形需快速转化为可被 Xcode 识别的资源格式,避免人工转换带来的误差或风格偏差。此外,对于持续集成(CI)流程而言,该脚本可作为构建步骤的一部分,在打包前自动生成所需符号,实现资源部署的全自动化。
