外观
实例化新 App
CarbonFiberApp 只是模板占位符。真实产品应在功能开发前一次性重命名,避免项目名、Target、Swift Module、目录和 Bundle ID 互相不一致。
推荐命令
在模板根目录执行:
bash
scripts/instantiate-template.sh \
--name FocusGarden \
--display-name "Focus Garden" \
--bundle-id com.xiezhixin.focusgarden \
--team 77TN4427T5参数说明:
| 参数 | 要求 |
|---|---|
--name | Swift 可用的类型和模块名,以字母开头,仅含字母、数字和下划线 |
--display-name | 用户在系统中看到的 App 名称 |
--bundle-id | 反向域名格式的 iOS Bundle ID |
--team | Apple Developer Team ID |
脚本会同步处理 iOS Target、macOS Target、测试 Target、Swift 入口、源码目录、测试目录、Bundle ID、展示名、Taskfile、README、底层文档和 Wiki。
实例化后
- 替换
Resources/Shared/Assets.xcassets中的 App Icon。 - 更新 README 和 Wiki 中仍属于模板说明的产品内容。
- 重新生成并验证工程:
bash
task generate
task verify
task build:mac
task test
task wiki:build- 检查仓库中不再存在不应保留的占位名:
bash
rg 'CarbonFiberApp|Carbon Fiber'后续再次调整目录
如果实例化后继续修改源码或测试目录,需要同步更新:
project.yml中 Target 的sources与resources路径。- iOS
INFOPLIST_FILE路径。 Taskfile.yml中的 plist、Scheme、Bundle ID 与状态路径。- 测试 Target 的源码路径和宿主设置。
AGENTS.md、README、docs/与 Wiki 中的引用。
随后重新生成 Xcode 工程,不要直接维护生成的 project.pbxproj。