mcpField
I
ios-frameworks

ios-frameworks

github.com/alphaonedev开发45 次安装
代码仓库

关于 ios-frameworks

ios-frameworks 是面向 iOS 开发的技能,涵盖 Apple 框架在数据存储、机器学习、AR、云同步和系统服务中的应用,适用于需要整合这些能力的应用开发。

主要功能

  1. 01CoreData 与 SwiftData 持久化
  2. 02CoreML 设备端推理
  3. 03ARKit 场景与对象追踪
  4. 04CloudKit 数据同步
  5. 05StoreKit 2、HealthKit 与 CoreLocation
  6. 06APNs 推送通知

适用场景

  1. 01构建本地数据待办应用
  2. 02在应用中添加 AR 对象识别
  3. 03同步用户数据至 iCloud
  4. 04开发健康、定位或内购功能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill ios-frameworks

安装后在 Claude Code 中输入/ios-frameworks确认已加载。

详细介绍

ios-frameworks

用途

此技能可帮助 AI 使用 Apple 的核心框架开发 iOS 应用,重点涵盖数据管理、ML 集成、AR 体验、云同步、App 内购买、健康追踪、位置服务和推送通知。

适用场景

当应用需要本地数据持久化(例如用户个人资料)、集成 ML 模型进行预测、构建 AR 叠加效果、将数据同步到 iCloud、处理购买、访问健康数据、追踪用户位置或发送推送通知时,请使用此技能。适用于带有支付功能的电商应用、健身追踪器或 AR 游戏等场景。

主要功能

  • CoreData/SwiftData:管理持久化对象图;SwiftData 提供了现代化且适用于 SwiftUI 的数据建模与存储替代方案。
  • CoreML:在设备上运行 ML 模型以执行图像识别等任务;支持来自 Create ML 或 TensorFlow 的模型。
  • ARKit:利用设备的摄像头和传感器支持平面检测、对象追踪和世界映射等 AR 会话功能。
  • CloudKit:通过 CKContainer 和 CKRecord 提供基于 iCloud 的存储和数据库,以便在多台设备间同步用户数据。
  • StoreKit 2:使用 SKProduct 和 SKPayment API 处理 App 内购买和订阅,实现变现。
  • HealthKit:通过 HKHealthStore 访问步数或心率等健康与健身数据,需要用户授权。
  • CoreLocation:通过 CLLocationManager 提供位置更新和地理围栏功能,适用于需要实时定位的应用。
  • APNs 推送:通过 Apple 推送通知服务,使用设备令牌和 APNs 提供商 API 发送远程通知。

使用模式

使用 CoreData 时,在 AppDelegate 中初始化持久化容器,并在视图控制器中执行提取。使用 ARKit 时,在 UIViewController 子类中启动 AR 会话并处理锚点更新。集成 CoreML 时,加载 .mlmodel 文件并根据用户输入运行预测。CloudKit 的使用模式:使用 CKDatabase 保存记录并订阅变更。对于 StoreKit 2,请求商品并在支付队列观察器中处理交易。访问 HealthKit 时,请求授权后查询 HKSampleType。使用 CoreLocation 时,配置 CLLocationManager 代理以接收更新。对于 APNs,请注册远程通知,并在 AppDelegate 中处理收到的有效负载。

常用命令/API

  • CoreData 设置:在 AppDelegate.swift 中创建持久化容器:
    let container = NSPersistentContainer(name: "MyApp")
    container.loadPersistentStores { ... }
  • CoreML 预测:加载模型并执行预测:
    let model = MyModel() let input = MyModelInput(...) let output = try model.prediction(input: input)
  • ARKit 会话:在视图控制器中:
    let session = ARSession() session.delegate = self session.run(ARWorldTrackingConfiguration())
  • CloudKit 记录保存:使用 CKDatabase:
    let record = CKRecord(recordType: "MyType") record["field"] = "value" database.save(record) { ... }
  • StoreKit 2 购买:请求并购买:
    let request = SKProductsRequest(productIdentifiers: ["com.example.product"]) request.start() // In delegate, handle products and SKPayment
  • HealthKit 查询:授权并查询:
    healthStore.requestAuthorization { ... } let query = HKSampleQuery(sampleType: HKQuantityType(...), ...) { ... }
  • CoreLocation 更新:开始监控:
    locationManager.requestWhenInUseAuthorization() locationManager.startUpdatingLocation()
  • APNs 注册:在 AppDelegate 中:
    UNUserNotificationCenter.current().requestAuthorization { ... } application.registerForRemoteNotifications()

集成说明

通过 Xcode 添加框架:选择目标 > 通用 > 框架、库和嵌入内容,然后添加 CoreData.framework 等。对于权限,请更新 Info.plist(例如,为 CoreLocation 添加 NSLocationWhenInUseUsageDescription)。在脚本或配置中使用环境变量存储 $CLOUDKIT_API_KEY 等密钥。对于 CloudKit,请在 Xcode 中启用 iCloud 功能,并在开发者门户中设置容器。在代码中导入模块(例如,import CoreData)。对于 APNs,请在 Apple Developer 门户中生成证书,并将其用于你的服务。配置格式:在 entitlements 文件中,添加 com.apple.developer.icloud-container-identifiers 等 iCloud 功能。确保将目标设为 iOS 17+,以兼容 SwiftData。

错误处理

对于 CoreData,在设置期间捕获 NSPersistentStoreCoordinator 错误(例如,catch let error as NSError { print(error.localizedDescription) })。在 CoreML 中,使用 do { try model.prediction(...) } catch { print(error) } 处理预测错误。ARKit 会话可能会抛出 ARSession.RunOptions 错误;请在代理方法中检查会话状态。CloudKit 操作使用 CKError;使用 if case .partialFailure(let errors) = error { ... } 进行处理。StoreKit 的 SKPaymentTransaction 错误包含 .paymentCancelled 等代码;请观察队列以发现失败。HealthKit 授权失败需要通过 UI 提示;请检查 error as HKErrorCode。CoreLocation 错误通过代理的 didFailWithError 处理;使用错误代码进行调试。对于 APNs,请在 AppDelegate 的 didFailToRegisterForRemoteNotificationsWithError 中处理注册错误。

具体用法示例

  1. 示例:构建基于 CoreData 的待办事项应用
    在新项目中设置 CoreData:在 Xcode 中创建数据模型,然后在 ViewController.swift 中通过以下代码获取项目:
    let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest() do { let items = try context.fetch(fetchRequest) } catch { ... }
    保存新项目:let newItem = Item(context: context); newItem.name = "Task"; try context.save()。

  2. 示例:集成 ARKit 进行对象检测
    在 ARViewController 中配置对象检测:
    let configuration = ARWorldTrackingConfiguration() configuration.detectionImages = Set([ARReferenceImage(...)] ) session.run(configuration)
    在 session(_:didUpdate:) 代理中处理检测结果,以叠加 UI 元素。

图关系

  • 相关:移动端集群(例如,android-frameworks 可提供跨平台方面的见解)。
  • 依赖:用于 APNs 和 CloudKit 的身份验证技能(使用 $APNS_TOKEN)。
  • 集成:用于 CloudKit 同步的后端技能。
  • 冲突:非 Apple 生态系统;但可链接到 web-api 技能以支持混合应用。

评论

支持 Markdown