关于 init-xcode-app
使用 XcodeGen 构建原生 SwiftUI 应用脚手架,并预置项目规范与开发工具。该 Skill 指导配置 iOS、macOS 或 iOS/watchOS 目标,并通过构建和测试命令验证生成的项目。
主要功能
- 01使用 XcodeGen 搭建 SwiftUI 项目
- 02iOS、macOS 和 iOS/watchOS 目标形态
- 03可选 CloudKit、CI、Release 和 Push 模块
- 04可选导入 JTBD 工件
- 05构建与测试验证
适用场景
- 01启动原生 SwiftUI 应用项目
- 02生成包含所选模块的项目
- 03交接前验证脚手架应用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill init-xcode-app安装后在 Claude Code 中输入/init-xcode-app确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/core/common/AGENTS.mdCLAUDE.mdCONTRIBUTING.mdgitignoreREADME.mdswiftformatswiftlint.ymlassets/core/shapes/ios-watchos/project.ymlassets/core/shapes/ios-watchos/Sources/iPhone/<Name>App.swiftContentView.swiftassets/core/shapes/ios-watchos/Sources/Shared/Item.swiftSyncService.swiftassets/core/shapes/ios-watchos/Sources/Watch/<Name>WatchApp.swiftWatchContentView.swiftassets/core/shapes/ios-watchos/Tests/ItemTests.swiftassets/core/shapes/ios/project.ymlassets/core/shapes/ios/Sources/App/<Name>App.swiftContentView.swiftDetailView.swiftItem.swiftassets/core/shapes/ios/Tests/ItemTests.swiftassets/core/shapes/macos/project.ymlassets/jtbd/agents-product-section.md.templateguardrails-check.md.templatejtbd-map.mdPRODUCT.md.templateassets/jtbd/fixtures/malformed-jtbd.jsonsample-jtbd.jsonassets/modules/ci/ci.ymlINSERT.md详细介绍
init-xcode-app
使用 XcodeGen 搭建原生 SwiftUI 应用脚手架(project.yml → 生成并提交的 .xcodeproj),
预先配置好约定和闭环工具链(xcsift、Xcode MCP、swiftformat/lint)。
这是 init-tauri-app 的轻量原生版本。
适用场景
- “初始化一个 xcode 项目”“搭建一个 swiftui 应用脚手架”“新建 macOS/iOS 应用”。
前置条件(搭建脚手架前确认)
xcodegen位于 PATH 中(xcodegen --version;如果缺失,执行brew install xcodegen)。- 已安装 Xcode + CLT(
xcodebuild -version)。
流程
1. 收集输入(AskUserQuestion)
- 应用名称(PascalCase,例如
Tidepool)→<Name>;小写形式 →<name>。 - Bundle ID 前缀(默认为
com.glebkalinin)→<bundlePrefix>。 - DEVELOPMENT_TEAM(可选,可留空)→
<TEAM>。 - 目标类型:
ios|macos|ios-watchos。 - 模块(可多选):CloudKit · CI · Release · Push。
- JTBD 文件(可选):
jtbd.json的路径(否则自动查找./jtbd.json、~/jtbd/<name>/jtbd.json)。参见 1.5。 - 目标目录(默认为
~/ai_projects/<name>)。如果目录非空则中止。
1.5 导入 JTBD(可选,增量添加)
与 init-tauri-app 的约定相同:解析(显式指定 → ./jtbd.json → ~/jtbd/<name>/jtbd.json),
通过 hook 确认,校验(render-jtbd.sh 退出码为 3 → 跳过),预填名称。文件将在步骤 3 中写入。
2. 渲染核心文件
将 assets/core/common/* 复制到项目中(重命名:gitignore→.gitignore、swiftformat→.swiftformat、
CLAUDE.md→.claude/CLAUDE.md)。将 assets/core/shapes/<shape>/* 复制到项目根目录。对于 macos,
还需将 assets/core/shapes/ios/Sources + Tests 复制到项目中(macos 会复用相同的 SwiftUI 源码)。替换
每个复制文件中的 <Name>/<name>/<bundlePrefix>/<TEAM>。<TEAM> 为空时,保留占位行
DEVELOPMENT_TEAM: ""。
如果已确认 JTBD 文件: 将 assets/jtbd/PRODUCT.md.template 渲染到 docs/PRODUCT.md,
将 guardrails-check.md.template 渲染到 docs/internal/guardrails-check.md,把
agents-product-section.md.template 插入 AGENTS.md 第一个标题之后,将文件复制到
项目根目录的 jtbd.json。参见 assets/jtbd/jtbd-map.md。
3. 组合所选模块
对于每个所选模块,打开 assets/modules/<m>/INSERT.md 并按其中说明操作:该文件列出了要复制的源文件
以及要合并到 project.yml 的 project-fragment.yml(合并到现有的 targets.<Name> 和
entitlements: 映射中——不要覆盖)。CloudKit 和 Push 都会扩展同一个 entitlements: 映射。
4. 生成并验证(门槛检查)
xcodegen generate
然后按目标类型执行未签名构建门槛检查:
- ios / ios-watchos:
xcodebuild build -scheme <Name> -destination 'generic/platform=iOS Simulator' - macos:
xcodebuild build -scheme <Name> -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
然后针对相同目标运行 xcodebuild test,测试目标也必须通过。两项检查都必须通过。
5. 交接
提供执行 git init && git add -A && git commit 的选项。打印摘要:目标类型、模块、签名说明
(设备/发布签名需要人工完成)、下一条命令(open <Name>.xcodeproj)。