用途:AppMigrationKit 用于应用资源的一次性跨平台迁移,让应用在设备设置或引导阶段把数据导出到另一平台(例如 Android),或从另一平台导入数据。系统负责设备间会话、传输与调度,应用本身不管理网络连接。
主要能力:采用 App Extension 模型,扩展类型遵循 AppMigrationExtension,并实现 ResourcesExportingWithOptions(或简化版 ResourcesExporting)与 ResourcesImporting。导出通过 ResourcesArchiver 的 appendItem(at:pathInArchive:) 增量写入文件,可声明 resourcesSizeEstimate、resourcesVersion、resourcesCompressible;导入通过 importResources(at:request:) 接收文件,可读取 sourceVersion 与 sourceAppIdentifier(platform、bundleIdentifier、storeIdentifier)。MigrationDataContainer 提供容器根目录、Documents 与 Application Support 目录访问。MigrationStatus.importStatus 供宿主应用在首次启动时检查迁移结果,处理后可调用 clearImportStatus()。导入侧通过 resourcesImportProgress 上报进度。
使用方式:为 Xcode 工程添加 App Extension target,并配置 com.apple.developer.app-migration.data-container-access 权限,其值为仅含宿主应用 bundle ID 的单元素字符串数组。核心 API 需 iOS 26.0+/iPadOS 26.0+,该权限需 iOS 26.1+/iPadOS 26.1+/Mac Catalyst 26.1+,Swift 6.3。
限制与注意:该框架为 iOS 26 新增,正式版前可能变动,需复核 Apple 最新文档。不要捕获 ResourcesArchiver 的取消错误,否则系统会终止扩展;避免 append 调用间长时间停顿;导出侧不要做中间格式转换;导入出错时系统会清空宿主应用容器但不含 App Group,需自行先清理;AppMigrationTester 仅用于单元测试,不可用于生产。其余细节暂未提供。