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

使用RoboVM部署iOS时,如何为KMM iOS目标引入JVM依赖?

解决RoboVM JVM项目依赖KMM iOS目标的问题

可以让你的RoboVM项目专门依赖KMM的iOS目标产物,核心是调整Gradle依赖配置,明确指定依赖KMM的iOS变体而非默认的JVM变体。以下是具体方案:

调整RoboVM项目的Gradle配置

替换原依赖声明,明确指向KMM项目的iOS目标编译输出。根据你RoboVM配置的架构(thumbv7:arm64),选择对应KMM的iosArm64变体:

plugins {
    kotlin("jvm")
    id("robovm")
}

kotlin {
    jvmToolchain(17)
}

robovm {
    archs = "thumbv7:arm64"
}

dependencies {
    // 依赖KMM项目的iOS Arm64主编译产物
    api(project(":kmm_placeholder").targets.getByName("iosArm64").compilations.getByName("main").defaultSourceSet.output)
    
    // 若需要支持iOS模拟器(x86_64架构),可添加以下依赖
    // api(project(":kmm_placeholder").targets.getByName("iosX64").compilations.getByName("main").defaultSourceSet.output)
}

前置检查

确保你的KMM项目(:kmm_placeholder)已正确配置iOS目标,示例配置如下:

// :kmm_placeholder的build.gradle.kts
kotlin {
    // 声明iOS架构目标,可单独声明或用ios()统一覆盖
    iosArm64()
    iosX64()
    // ios() // 此方式会自动生成所有iOS架构目标
    
    jvm() // 保留原JVM目标
    // 其他目标(如Android)...
}

简化依赖方式(可选)

如果KMM项目使用ios()统一管理所有iOS架构,也可以直接依赖iosMain源码集的输出:

dependencies {
    api(project(":kmm_placeholder").compilations.getByName("iosMain").defaultSourceSet.output)
}

注意事项

  • 确保RoboVM版本与Kotlin、KMM版本兼容,避免因版本冲突导致依赖解析失败。
  • 若遇到依赖找不到的问题,可执行gradle dependencies命令查看依赖树,确认KMM的iOS变体是否已正确生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:10:14