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

如何在现有XCode项目中复用Windows端Android Studio开发的Kotlin代码?

解决方案:Windows端开发Kotlin共享代码并同步到iOS项目

核心结论

不要直接复制Kotlin源码到Xcode编译——Xcode原生不支持Kotlin,必须先将Kotlin代码编译为iOS可识别的二进制产物(.framework或Pod)。推荐基于Kotlin Multiplatform Mobile (KMM) 实现,适配你Windows开发、Mac端集成的场景。

方案一:基于KMM生成iOS框架(推荐,适配现有项目结构)

KMM是官方跨平台方案,虽然多数教程基于Mac,但可以适配Windows开发+Mac编译的流程:

  1. 在Windows的Android Studio中配置KMM共享模块

    • 安装KMM插件,给现有安卓项目添加「Kotlin Multiplatform Shared Module」
    • 在共享模块的build.gradle.kts中配置iOS目标,示例:
      kotlin {
          iosX64()
          iosArm64()
          iosSimulatorArm64() // 适配M系列Mac模拟器
          
          sourceSets {
              val commonMain by getting {
                  dependencies {
                      // 仅添加跨平台可用的依赖,避免安卓专属API
                  }
              }
              val iosMain by creating {
                  dependsOn(commonMain)
              }
          }
      }
      
    • 在commonMain下编写要共享的Kotlin代码(确保不调用安卓专属API)
  2. 同步代码到Mac端

    • 用Git将包含KMM共享模块的安卓项目同步到Mac电脑
  3. 在Mac端编译iOS产物

    • 打开Mac端的Android Studio,加载项目后执行Gradle任务:./gradlew shared:build(shared是你的KMM模块名)
    • 编译完成后,iOS框架会生成在shared/build/bin/ios/<目标架构>/releaseFramework/路径下
  4. 集成到Xcode

    • 将生成的.framework文件拖入Xcode项目,在「General」->「Frameworks, Libraries, and Embedded Content」中设置为「Embed & Sign」
    • 或者在Mac端执行./gradlew shared:podspec生成Podspec文件,通过CocoaPods将共享框架作为依赖引入Xcode

方案二:轻量场景——用Kotlin/Native直接编译框架

如果不需要完整的KMM模块,可单独编译Kotlin文件为iOS框架:

  1. 在Windows端编写好纯Kotlin共享代码(仅使用Kotlin标准库,避免安卓API)
  2. 将这些Kotlin文件同步到Mac端
  3. 在Mac终端执行编译命令:
    kotlinc-native path/to/shared/*.kt -framework -o MySharedFramework
    
  4. 将生成的MySharedFramework.framework导入Xcode即可

关键说明

  • Xcode本身不使用Gradle,但KMM依赖Gradle来管理跨平台构建流程——Windows端负责编写共享代码,Mac端负责编译iOS产物
  • 所有共享的Kotlin代码必须是跨平台兼容的,不能包含安卓专属的类(如Activity、Context等),否则编译iOS产物会报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:42:19