KMM库无法生成XCFramework,仅生成空目录求助
解决KMM项目构建XCFramework仅生成空目录的问题
以下是针对该问题的排查和解决方案:
检查iOS目标的XCFramework配置
确保模块的build.gradle.kts中iOS目标的binaries块正确配置了XCFramework,需明确指定要包含的架构:ios { binaries { xcFramework { // 按需添加需要支持的架构,比如真机、模拟器架构 binaries.forEach { it.targetTriples += iosArm64() it.targetTriples += iosX64() it.targetTriples += iosSimulatorArm64() } } } }若架构配置不全,可能导致没有对应的二进制产物生成,最终XCFramework目录为空。
使用正确的Gradle构建命令
不要依赖Android Studio的GUI构建按钮,直接在终端执行指定Gradle命令:./gradlew assembleXCFramework若项目包含多个模块,需指定具体模块:
./gradlew :your-library-module:assembleXCFramework查看命令行输出的日志,重点关注是否有构建失败、跳过的提示,比如
Task SKIPPED或报错信息,这些是排查问题的关键。验证iOS SDK版本匹配
确认项目中配置的iOS最低版本与本地Xcode安装的SDK版本兼容,比如在build.gradle.kts中:ios { iosTarget("ios") { minOsVersion = "14.0" } }若Xcode中没有对应版本的SDK,可能导致构建静默失败,无产物输出。
检查Gradle插件与Kotlin版本兼容性
根项目settings.gradle.kts和模块build.gradle.kts中,Kotlin Multiplatform插件版本需与Kotlin版本匹配:// 根项目settings.gradle.kts plugins { id("org.jetbrains.kotlin.multiplatform") version "1.9.20" apply false }版本不兼容可能导致构建流程异常,无法生成XCFramework产物。
查看详细构建日志定位问题
执行带日志参数的构建命令,获取更详细的执行信息:./gradlew assembleXCFramework --info搜索日志中
xcframework相关条目,查找是否有构建被跳过的原因,比如无符合条件的二进制产物、依赖缺失等。
内容的提问来源于stack exchange,提问作者Pratik
相关产品推荐
相关产品推荐

