mcpField
I
init-xcode-app

init-xcode-app

github.com/glebis开发40149 次安装1 天前更新
代码仓库

关于 init-xcode-app

使用 XcodeGen 构建原生 SwiftUI 应用脚手架,并预置项目规范与开发工具。该 Skill 指导配置 iOS、macOS 或 iOS/watchOS 目标,并通过构建和测试命令验证生成的项目。

主要功能

  1. 01使用 XcodeGen 搭建 SwiftUI 项目
  2. 02iOS、macOS 和 iOS/watchOS 目标形态
  3. 03可选 CloudKit、CI、Release 和 Push 模块
  4. 04可选导入 JTBD 工件
  5. 05构建与测试验证

适用场景

  1. 01启动原生 SwiftUI 应用项目
  2. 02生成包含所选模块的项目
  3. 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.md
CLAUDE.md
CONTRIBUTING.md
gitignore
README.md
swiftformat
swiftlint.yml
assets/core/shapes/ios-watchos/
project.yml
assets/core/shapes/ios-watchos/Sources/iPhone/
<Name>App.swift
ContentView.swift
assets/core/shapes/ios-watchos/Sources/Shared/
Item.swift
SyncService.swift
assets/core/shapes/ios-watchos/Sources/Watch/
<Name>WatchApp.swift
WatchContentView.swift
assets/core/shapes/ios-watchos/Tests/
ItemTests.swift
assets/core/shapes/ios/
project.yml
assets/core/shapes/ios/Sources/App/
<Name>App.swift
ContentView.swift
DetailView.swift
Item.swift
assets/core/shapes/ios/Tests/
ItemTests.swift
assets/core/shapes/macos/
project.yml
assets/jtbd/
agents-product-section.md.template
guardrails-check.md.template
jtbd-map.md
PRODUCT.md.template
assets/jtbd/fixtures/
malformed-jtbd.json
sample-jtbd.json
assets/modules/ci/
ci.yml
INSERT.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)。

评论

支持 Markdown