用途
该技能仅用于原生 iOS 开发,是 SwiftUI 优先的 iOS 17+ 应用、旧代码库有界重写,以及在 Xcode、Codex、Claude Code 中进行智能体辅助工作流的默认共享技能入口。
主要能力
状态与 UI:新界面默认使用 SwiftUI,仅在 Apple API 要求时使用 UIKit 互操作;iOS 17+ 使用 @Observable + 主 actor 隔离替代 ObservableObject/Published;异步工作使用 async/await 与结构化并发;单元/集成测试优先使用 Swift Testing,UI 自动化测试继续使用 XCTest/XCUITest。状态机纪律包括提交守卫(guard state == .idle else { return })防止重复提交、瞬时完成不重置持久状态、移除不可能发生的状态枚举。
网络与韧性:使用 @Observable 单例 + NWPathMonitor 发布 isConnected,离线时禁用提交按钮,在屏幕 .onAppear 中启动监听。
智能体工具与构建:Xcode 内使用原生助手;Xcode 外优先 XcodeBuildMCP,不可用时回退到 Apple CLI(xcodebuild、simctl、xcresulttool)。构建/安装/陈旧应用失败时先使用 software-ios-runtime-debugging。XcodeGen 项目添加新 Swift 文件后必须运行 scripts/generate-xcodeproj.sh;.pbxproj 管理的项目需手动将新文件加入目标成员。
StoreKit 与计费:StoreKit 2 订阅使用 @Observable StoreKitManager + TransactionSyncService,仅在后台同步确认后调用 transaction.finish();付费墙从任意锁定屏幕以 .sheet(isPresented:) 模态呈现;价格显示使用 product.displayPrice,不硬编码;促销优惠使用服务器签名的 .promotionalOffer()。付费应用协议需在 App Store Connect 验证为 Active,否则 Product.products(for:) 会静默返回空。
认证与推送:Sign in with Apple 使用 ASAuthorizationController + CheckedContinuation;OTP 输入使用隐藏 TextField + .textContentType(.oneTimeCode);推送通知类别需在 didFinishLaunchingWithOptions 中注册;徽章计数使用 setBadgeCount(iOS 16+);推送动作路由检查 response.actionIdentifier。
Swift 并发:提供崩溃分诊手册(swift-concurrency-crash-triage.md)、并发模式与诊断参考、SwiftUI 废弃 API 现代化、性能审计、现代 Swift 惯用法等参考文档。
持久化:SwiftData 建模(谓词、CloudKit、索引、类继承)、Core Data 持久化(栈设置、上下文、对象 ID、批量操作、迁移、CloudKit)、可复用应用骨架、iCloud 数据库应用骨架。
技术栈与变现:提供从 CloudKit→Cloudflare→RevenueCat→Supabase 的渐进阶梯、设备端 AI 作为免费层、Webhook 幂等陷阱;iOS 应用工厂(每类默认栈、共享 SPM、Fastlane+Match CI、智能体构建循环)。
构建性能:Xcode 构建优化(基准测试、诊断标志、SPM 分析、常见优化)。
使用方式
该技能通过规则文件(如 rules/ios/money.md)在 Claude 编辑匹配文件时加载相应不变量。工作流程为:确认应用形态(SwiftUI、UIKit 互操作、服务或发布门禁)→ 验证 Xcode、模拟器/设备、构建、安装和启动现实 → 选择架构(Observation、并发、持久化、导航)→ 实现有界切片并附带测试和隐私/无障碍检查 → 检查 Swift、StoreKit、签名、隐私和 App Store 陷阱 → 构建、运行、检查日志/截图并报告证据。重写工作流要求锁定基线、选择目标默认值、将重写切分为有界垂直功能、每个切片要求证据。
适用场景
SwiftUI 优先的 iOS 17+ 屏幕、应用骨架、UIKit 有界重写、智能体辅助的 Xcode/Codex/Claude Code 工作流、Swift 并发、SwiftData/Core Data 持久化、Xcode 构建优化、隐私清单、发布门禁和原生 iOS 代码审查。
限制
版本信息需每次会话检查 Apple Developer Releases 页面和 swift.org/blog,技能中的具体点发布号仅为示例而非当前事实。发布门禁(隐私清单、必需理由 API、SDK 合规、无障碍、真机验证)为非可选。严格并发采用需逐模块或逐文件启用,不可用 @preconcurrency 批量静默替代迁移。模块化阈值约为 150-200 个文件。TestFlight 和分阶段发布需遵守纪律,不可从内部构建直接提升到 100% 生产发布。