用途:AppMigrationKit 用于应用资源的一次性跨平台迁移,支持从 Android 等平台导出数据并在 iOS 设备设置或引导阶段导入,适用于 iOS 26+ / iPadOS 26+ / Swift 6.3。该框架较新,正式版前可能变化,使用前应核对 Apple 最新文档。
主要能力:采用 App Extension 模型,系统编排设备间传输,应用提供符合导出与导入协议的扩展。关键类型包括 AppMigrationExtension、ResourcesExportingWithOptions、ResourcesExporting、ResourcesImporting、ResourcesArchiver、MigrationDataContainer、MigrationStatus、MigrationPlatform、MigrationAppIdentifier 及仅测试用的 AppMigrationTester。导出侧可声明 resourcesSizeEstimate、resourcesVersion、resourcesCompressible,并通过 archiver.appendItem(at:pathInArchive:) 增量写入文件或目录;导入侧通过 importResources(at:request:) 接收数据,可读取 sourceVersion 与 sourceAppIdentifier(platform、bundleIdentifier、storeIdentifier)。
使用方式:扩展需 com.apple.developer.app-migration.data-container-access 权限,值为仅含宿主应用 bundle ID 的单元素字符串数组;通过 appContainer 访问宿主容器目录。迁移完成后宿主应用在首次启动检查 MigrationStatus.importStatus,处理 .success 或 .failure 后调用 clearImportStatus()。导入侧可用 resourcesImportProgress 更新进度。
限制与注意:不要捕获 ResourcesArchiver 的取消错误,否则扩展会被系统终止;避免 append 调用间长时间停顿;导出侧不要做中间格式转换;导入出错时系统会清空宿主容器但不清理 App Group,需自行先清理;AppMigrationTester 仅用于单元测试,不可用于生产。其余细节暂未提供。