求助:从Android KMM模块构建XCFramework时Gradle命令执行失败
KMM模块生成XCFramework失败的排查方案
以下是针对该问题的常见排查和解决步骤:
确认KMM模块的Gradle配置
检查模块的build.gradle.kts(或.gradle)文件,确保iOS目标和XCFramework生成配置正确:- 必须声明所有需要的iOS架构目标:
iosX64()、iosArm64()、iosSimulatorArm64() - 配置XCFramework的基础名称,示例如下:
kotlin { android() iosX64() iosArm64() iosSimulatorArm64() xcFramework { baseName = "MyShared" } // 其余sourceSets配置... }
- 必须声明所有需要的iOS架构目标:
验证本地编译环境
- 生成XCFramework只能在MacOS系统上操作,Windows/Linux不支持iOS目标编译
- 确保已安装Xcode,并且配置了命令行工具:执行
xcode-select --install完成安装,或在Xcode偏好设置的「Locations」中指定Command Line Tools版本 - 保证Xcode版本与Kotlin Multiplatform插件版本兼容,优先使用双方的最新稳定版
清理缓存后重试
先执行gradlew clean清除旧编译缓存,再尝试执行gradlew assembleXCFramework。如果模块不在根目录,要加上模块路径,比如gradlew :my-shared:assembleXCFramework(替换为你的模块实际路径)获取详细错误日志定位问题
执行命令时添加--stacktrace或--info参数,比如gradlew assembleXCFramework --stacktrace,通过完整的错误堆栈信息,能快速定位具体问题(比如依赖缺失、iOS平台代码兼容性问题、工具链异常等)检查代码的跨平台兼容性
确认KMM模块中没有iOS不支持的代码:- 避免直接使用Android专属API(如
android.*包下的类),这类代码需要用expect/actual机制做跨平台适配 - 确保所有三方依赖都支持KMM的iOS目标
- 避免直接使用Android专属API(如
内容的提问来源于stack exchange,提问作者Pratik
相关产品推荐
相关产品推荐

