Token导航 LogoToken导航TokenDH.com
Ios Claude Code Template logo
开发工具未说明官方级别未说明来源级核验

Ios Claude Code Template

MCP Server

一个基于Claude Code和MCP服务器的iOS应用开发模板,适用于个人开发者,提供MVVM架构、MCP服务器优化和自动化工作流。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Swift工作流自动化ClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AIUELAB

提供方

AIUELAB

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Claude Code + MCP 协作iOS 应用程序开发模板

Claude Code 和MCP(Model Context Protocol)利用服务器,面向个人开发者的iOS 是应用程序开发模板。

特徴

  • MVVM + Repository 模式 - SwiftUI 优化的体系结构
  • MCP 服务器优化 -在节省上下文标记的同时提供所需的功能
  • 斜线命令 -轻松添加屏幕、运行测试等
  • GitHub操作CI -拉式请求自动测试

必要环境

  • macOS 14+(索诺玛)
  • Xcode 15+
  • Node.js 18+
  • 克劳德代码CLI

快速启动

1.设置模板

# このテンプレートをコピー
git clone  my-ios-app
cd my-ios-app

# セットアップスクリプトを実行
./scripts/setup.sh MyAppName

2.设置环境变量

设置脚本 /Users/admin/Documents/key/ 中所述修改相应参数的值。

自动装入的键:

  • GITHUB_PAT_key.txt → GITHUB令牌
  • Brave Search API Key 3.txt → 制动_API_KEY
  • anthropic_api_key.txt → ANTHROPIC_API_键
  • OPENAI_API_KEY.txt → OPENAI_API密钥

手动重新生成关键帧:

./scripts/generate-env-mcp.sh

Supabase 的设置(后端协作时)

⚠️ 重要: Supabase关键点是由于安全原因无法自动加载。 每个项目都有自己的Supabase请使用项目。

设定手顺:

  1. Supabase 在中创建新项目
  2. Project Settings → API 从URL获取密钥
  3. .env.mcp 编辑并设置关键帧:
# .env.mcp を開いて以下の行のコメントを解除し、値を設定
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.your_key
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.your_key

为什么需要手动设置?

  • 防止不同项目之间的数据污染
  • 错误地将其他项目的DB排除连接到的风险
  • 安全最佳做法

将环境变量导入到当前壳中时:

source ./scripts/load-keys.sh

3. Claude Code 启动

claude

4.构建项目

Claude Code 其中:

/build

目录配置

my-ios-app/
├── .claude/                     # Claude Code 設定
│   └── commands/               # スラッシュコマンド
├── App/                        # Xcode プロジェクト
│   ├── Sources/
│   │   ├── App/               # エントリーポイント
│   │   ├── Features/          # 機能別モジュール
│   │   │   ├── Home/
│   │   │   └── Settings/
│   │   └── Core/              # 共通コンポーネント
│   │       ├── Models/
│   │       ├── Repositories/
│   │       └── Extensions/
│   └── Tests/                 # ユニットテスト
├── mcp-config/                 # MCP 設定
│   └── profiles/              # minimal / standard / full
├── scripts/                    # ユーティリティスクリプト
└── .github/workflows/          # CI/CD

MCP 配置文件

提供了三个配置文件以节省上下文标记:

配置文件|令牌消耗|包含MCP用途
最小~800XcodeBuildMCP最高速度。仅构建测试
标准~2,600+ GitHub, Context7推奨。日常开発に最适
满的~4,500+ Supabase, Brave Search后端协作时

切换配置文件

./scripts/switch-mcp-profile.sh minimal   # 最小構成
./scripts/switch-mcp-profile.sh standard  # 標準構成(推奨)
./scripts/switch-mcp-profile.sh full      # フル構成

切换后Claude Code 中所述修改相应参数的值。

斜线命令

|命令|说明| |---------|------| | /add-screen ProfileScreen 添加新屏幕(View+ViewModel) | /add-feature Authentication |添加新功能模块| | /build 构建项目 | /build release 发布版本 | /run-tests 执行单元测试 | /lint | SwiftLint 代码质量检查

典型工作流

添加新屏幕

/add-screen Profile

这将生成以下文件:

  • App/Sources/Features/Profile/ProfileView.swift
  • App/Sources/Features/Profile/ProfileViewModel.swift
  • App/Tests/ProfileViewModelTests.swift

API 添加协作

  1. 定义模型
// Core/Models/User.swift
struct User: Codable, Identifiable {
    let id: String
    let name: String
    let email: String
}
  1. Repository 创建
// Core/Repositories/UserRepository.swift
protocol UserRepositoryProtocol {
    func fetchCurrentUser() async throws -> User
}
  1. ViewModel 使用
@Observable
class ProfileViewModel {
    private let repository: UserRepositoryProtocol

    func loadUser() async {
        user = try? await repository.fetchCurrentUser()
    }
}

后端协作

此模板包含 Supabase Swift SDK 对较大场景进行渲染期间已观察到该故障。

步骤1:设置环境变量

.env.mcp 的Supabase 添加设置:

SUPABASE_URL=https://xxxxx.supabase.co
SUPABASE_ANON_KEY=eyJhbGci...

第2步:Supabase 创建表格

CREATE TABLE items (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    title TEXT NOT NULL,
    subtitle TEXT NOT NULL,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Row Level Security を有効化
ALTER TABLE items ENABLE ROW LEVEL SECURITY;

第3步:SupabaseItemRepository 使用

// ItemRepository から SupabaseItemRepository に切り替え
let repository = SupabaseItemRepository()
let items = try await repository.fetchItems()

文件配置

文件/角色 |---------|------| | SupabaseService.swift | Supabase 客户机单字节 | SupabaseItemRepository.swift | Supabase 使用Item CRUD 操作

Info.plist 中的设置(可选)

代替环境变量Info.plist 可配置:

SUPABASE_URL
https://xxxxx.supabase.co
SUPABASE_ANON_KEY
$(SUPABASE_ANON_KEY)

注意事项

  • ⚠️ Service Role Key 仅在服务器端使用
  • 在客户端应用程序中 匿名密钥 请使用
  • Row Level Security (RLS) 必须启用

实时同步

可以在多个设备之间实时同步数据。

第1步:Supabase 启用实时

Supabase 在仪表板上:

  1. Database → Replication 移到
  2. items 表格Realtime 启用

第2步:RealtimeHomeView 使用

// ContentView.swift で RealtimeHomeView を使用
TabView {
    RealtimeHomeView()  // リアルタイム対応版
        .tabItem {
            Label("Home", systemImage: "house")
        }
}

文件配置

文件/角色 |---------|------| | RealtimeService.swift | Realtime 购読管理| | RealtimeItemRepository.swift | CRUD + 实时更新 | RealtimeHomeViewModel.swift 实时响应ViewModel | | RealtimeHomeView.swift 带连接状态显示UI |

机能

机能说明
自动同期 自动接收其他客户端的更改
接続状態表示 用绿色/红色指示器显示连接状态
楽観的更新 立即,立即UI更新,失败时回滚
再接続 可以在断开连接时手动重新连接

使用例

// ViewModelでリアルタイムを開始
await viewModel.startRealtime()

// アイテム追加(自動で他のクライアントにも反映)
viewModel.addItem()

// リアルタイムを停止
await viewModel.stopRealtime()

社交登录(Apple/Google)

Apple ID 啊Google 支持帐户登录。

Sign in with Apple 设置

  1. 苹果开发者控制台:

- Identifiers → App IDs で Sign in with Apple を有効化 - Keys 的Sign in with Apple Key 创建

  1. Supabase仪表板:

- Authentication → Providers → Apple を有効化 - Service ID 和Secret Key 的规格化距离的幂函数

  1. 项目:

- Signing & Capabilities → Sign in with Apple を追加 - MyApp.entitlements 自动生成

Sign in with Google 设置

  1. 谷歌云控制台:

- OAuth 2.0 Client ID 创建 - Authorized redirect URIs 的 https://your-project.supabase.co/auth/v1/callback 添加

  1. Supabase仪表板:

- Authentication → Providers → Google を有効化 - Client ID 和Client Secret 的规格化距离的幂函数

  1. URL 方案:

- project.ymlmyapp:// 已配置方案

文件配置

文件/角色 |---------|------| | SocialAuthService.swift | Apple/Google认证处理| | SocialAuthButtons.swift 社交登录按钮UI | | MyApp.entitlements | Sign in with Apple権限 |

使用例

// Sign in with Apple
try await SocialAuthService.shared.signInWithApple()

// Sign in with Google
try await SocialAuthService.shared.signInWithGoogle()

// OAuth コールバック処理(AppMain.swiftで自動処理)
try await SocialAuthService.shared.handleOAuthCallback(url)

LLM 活用提示

有效提示示例

机能追加

Settings 画面に「通知設定」セクションを追加してください。
- プッシュ通知の ON/OFF トグル
- 通知頻度の選択(毎日/毎週/なし)
MVVM パターンに従い、テストも追加してください。

重构

HomeViewModel を Repository パターンを使うようにリファクタリングしてください。
現在は直接 URLSession を呼んでいます。
ItemRepositoryProtocol を作成して、DI できるようにしてください。

调试

この SwiftUI View が更新されません。
データは変更されているはずですが、UI に反映されません。
コードを分析して問題を特定してください。

[コードを貼り付け]

CI/CD(GitHub操作)

在拉式请求时自动执行构建测试。

工作流程

|作业|内容|执行时机| |-------|------|--------------| | 构建和测试 |构建+40测试运行|Push/PR | | SwiftLint |代码质量检查|Push/PR | | 代码质量 | TODO/FIXME検出、统计|Push/PR | | 发行的组建 | Release构建确认|PR仅限于

自动更新(Dependabot)

每周星期一更新依赖关系PR将自动创建:

  • Swift Package Manager 包装
  • GitHub Actions 版本

徽章

![CI](https://github.com/your-username/your-repo/actions/workflows/ci.yml/badge.svg)

在本地CI再现

# XcodeGenでプロジェクト生成
cd App
xcodegen generate

# ビルド
xcodebuild build \
  -project MyApp.xcodeproj \
  -scheme MyApp \
  -destination 'platform=iOS Simulator,name=iPhone 15' \
  CODE_SIGNING_ALLOWED=NO

# テスト実行
xcodebuild test \
  -project MyApp.xcodeproj \
  -scheme MyApp \
  -destination 'platform=iOS Simulator,name=iPhone 15' \
  CODE_SIGNING_ALLOWED=NO

# SwiftLint
swiftlint lint --config .swiftlint.yml

故障排除

生成构建错误

# Derived Data をクリア
rm -rf ~/Library/Developer/Xcode/DerivedData

# クリーンビルド
/build clean

MCP 未检测到服务器

# MCP 設定を再適用
./mcp-config/setup-mcp.sh standard

# Claude Code を再起動

模拟器未启动

# シミュレータをリセット
xcrun simctl erase all

# 利用可能なシミュレータを確認
xcrun simctl list devices

参考链接

许可证

MIT许可证

目录标签

目录标签

Swift工作流自动化Claude本地部署iOS开发SwiftUIMVVM架构自动化工作流ClaudeCode

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP