用途:将 KMP 项目由 CocoaPods 迁移到 SwiftPM。迁移按阶段进行,期间先保留 cocoapods {} 插件,新增 swiftPMDependencies {},再重新配置 Xcode,最后移除 CocoaPods。
主要能力与流程:Phase 1 迁移前分析并验证项目可编译;Phase 2 更新 Gradle 仓库与 Kotlin 版本;Phase 3 在保留 cocoapods {} 的同时新增 swiftPMDependencies {},并把 framework {} 配置迁移到各 target 的 binaries API(建议 isStatic = true);Phase 4 转换 Kotlin 导入;Phase 5 重新配置 iOS 工程并去集成 CocoaPods;Phase 6 移除 CocoaPods 插件;Phase 7 验证 Gradle 与 Xcode 构建;Phase 8 生成 MIGRATION_REPORT.md。
要求:Kotlin 2.4.0-Beta2 或更新(Maven Central 提供),Xcode 16.4 或 26.0+,iOS 部署目标建议 16.0+。
用法要点:先查找使用 CocoaPods 的模块(grep -rl "cocoapods" --include="build.gradle.kts" .),运行 ./gradlew :moduleName:compileKotlinIosSimulatorArm64 验证编译;用 swiftPackage(url=..., version=..., products=listOf(...)) 替换 pod(),版本保持不变,不升级依赖;必要时显式设置 importedClangModules,并加入 @file:OptIn(...ExperimentalKotlinGradlePluginApi::class) 与 kotlinx.cinterop.ExperimentalForeignApi opt-in。
限制与注意:迁移期间不应升级 Gradle wrapper、KSP 或其他依赖;同一套库(如 Firebase)不可部分走 CocoaPods、部分走 SPM,否则可能符号冲突;部分第三方 KMP 库自带 cocoapods.* cinterop klib,其导入需原样保留。Podfile 中仅在 Podfile 出现的依赖也需迁入 swiftPMDependencies。