You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下如何生成可跨端复用的KMM模块制品及可行性

在Windows系统下生成可复用的完整KMM库制品方案

可行性说明

完全可行。Windows环境下可以生成Android、JVM、iOS(含XCFramework)等全平台的KMM库制品,iOS部分无需本地Mac设备,可通过JetBrains提供的远程构建服务完成。


步骤1:检查并修正KMM模块的Gradle配置

确保模块的build.gradle.kts(或Groovy版build.gradle)中包含所有需要的目标平台配置,示例如下:

plugins {
    id("org.jetbrains.kotlin.multiplatform")
    id("com.android.library")
}

kotlin {
    // Android目标
    androidTarget {
        compilations.all {
            kotlinOptions {
                jvmTarget = "1.8"
            }
        }
    }

    // JVM桌面目标(按需添加)
    jvm("desktop")

    // iOS全架构目标
    iosX64()
    iosArm64()
    iosSimulatorArm64()

    // 统一iOS源码集
    sourceSets {
        val commonMain by getting
        val androidMain by getting
        val desktopMain by getting
        val iosX64Main by getting
        val iosArm64Main by getting
        val iosSimulatorArm64Main by getting
        val iosMain by creating {
            dependsOn(commonMain)
            iosX64Main.dependsOn(this)
            iosArm64Main.dependsOn(this)
            iosSimulatorArm64Main.dependsOn(this)
        }
    }
}

android {
    namespace = "com.yourcompany.yourmodule"
    compileSdk = 34
    defaultConfig {
        minSdk = 21
    }
}

步骤2:生成各平台制品的Gradle命令

  • Android AAR包:运行以下命令,产物输出到build/outputs/aar/目录
    ./gradlew :your-module-name:assembleRelease
    
  • JVM Jar包(若配置了JVM目标):运行以下命令,产物输出到build/libs/目录
    ./gradlew :your-module-name:desktopJar
    
  • iOS XCFramework:Windows下通过远程构建生成,无需本地Mac:
    1. 在项目根目录的gradle.properties中添加配置:
      kotlin.mpp.enableGranularSourceSetsMetadata=true
      kotlin.native.enableDependencyPropagation=false
      
    2. 运行生成命令,产物输出到build/xcode-frameworks/目录
      ./gradlew :your-module-name:createXCFramework
      

    首次使用需登录JetBrains账号,免费额度足以支撑个人开发需求。


步骤3:发布到本地仓库供其他KMM项目复用

若要在本地其他KMM项目中直接依赖该库,推荐发布到Maven本地仓库:

  1. 在模块的build.gradle.kts中添加发布配置:
    publishing {
        repositories {
            mavenLocal()
        }
        publications {
            withType<MavenPublication> {
                groupId = "com.yourcompany" // 替换为你的groupId
                artifactId = "your-module-name" // 替换为你的模块名
                version = "1.0.0" // 替换为版本号
            }
        }
    }
    
  2. 执行发布命令:
    ./gradlew :your-module-name:publishToMavenLocal
    
  3. 在其他KMM项目中添加依赖:
    dependencies {
        // 通用依赖
        implementation("com.yourcompany:your-module-name:1.0.0")
        // 按需添加特定平台依赖(如iOS)
        implementation("com.yourcompany:your-module-name-iosx64:1.0.0")
    }
    

常见问题排查

  • 若仅生成AAR,说明Gradle配置中仅启用了Android目标,需补充其他平台的配置代码
  • iOS框架生成失败时,检查网络连接(需访问远程构建服务),确认JetBrains账号已正常登录
  • 确保所有平台的源代码无语法错误,否则构建流程会提前终止

内容的提问来源于stack exchange,提问作者Mohamed Chaabouni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:42:26