如何在现有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编译的流程:
在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)
同步代码到Mac端
- 用Git将包含KMM共享模块的安卓项目同步到Mac电脑
在Mac端编译iOS产物
- 打开Mac端的Android Studio,加载项目后执行Gradle任务:
./gradlew shared:build(shared是你的KMM模块名) - 编译完成后,iOS框架会生成在
shared/build/bin/ios/<目标架构>/releaseFramework/路径下
- 打开Mac端的Android Studio,加载项目后执行Gradle任务:
集成到Xcode
- 将生成的
.framework文件拖入Xcode项目,在「General」->「Frameworks, Libraries, and Embedded Content」中设置为「Embed & Sign」 - 或者在Mac端执行
./gradlew shared:podspec生成Podspec文件,通过CocoaPods将共享框架作为依赖引入Xcode
- 将生成的
方案二:轻量场景——用Kotlin/Native直接编译框架
如果不需要完整的KMM模块,可单独编译Kotlin文件为iOS框架:
- 在Windows端编写好纯Kotlin共享代码(仅使用Kotlin标准库,避免安卓API)
- 将这些Kotlin文件同步到Mac端
- 在Mac终端执行编译命令:
kotlinc-native path/to/shared/*.kt -framework -o MySharedFramework - 将生成的
MySharedFramework.framework导入Xcode即可
关键说明
- Xcode本身不使用Gradle,但KMM依赖Gradle来管理跨平台构建流程——Windows端负责编写共享代码,Mac端负责编译iOS产物
- 所有共享的Kotlin代码必须是跨平台兼容的,不能包含安卓专属的类(如
Activity、Context等),否则编译iOS产物会报错
内容的提问来源于stack exchange,提问作者Kiwi
相关产品推荐
相关产品推荐

