如何将 KMP(Kotlin Multiplatform) 项目打包为 exe?

作为跨平台开发的利器,Kotlin Multiplatform 让开发者能用一套代码构建多端应用。本文将手把手教你如何将 KMP 项目编译为 Windows 可执行文件(EXE),解决打包过程中的常见痛点!


一、Gradle 配置关键步骤

在项目的 build.gradle.kts 文件中添加以下配置:

...
compose.desktop {
    application {
        mainClass = "com.niki.MainKt" // 替换为你的主类路径
        
        nativeDistributions {
            targetFormats(TargetFormat.Exe, TargetFormat.Msi) // 同时生成EXE和MSI
            packageName = "YourAppName" // 自定义应用名称
            packageVersion = "1.0.0" // 设置版本号
            
            windows {
                ...
				msiPackageVersion = packageVersion
                exePackageVersion = packageVersion
            }
        }
    }
}

配置说明:

  1. mainClass:入口类路径,格式为 包名.主Kt文件(不带.kt后缀,例如com.niki.MainKt
  2. packageName:安装后显示的应用名称
  3. upgradeUuid:使用 uuidgen 生成唯一ID(Windows更新必需,此处没有演示)
  4. 推荐:添加 menu = true 可创建开始菜单快捷方式

二、一键生成 EXE 文件

在项目根目录执行命令:

./gradlew packageExe

构建过程解析:

  1. 自动下载 Wix Toolset(Windows 安装包构建工具)
  2. 编译 Kotlin 代码为原生二进制
  3. 打包依赖库和资源文件
  4. 生成 EXE 安装包

三、解决 Wix 下载问题

国内环境常因网络问题(github)导致下载超慢或无法下载导致构建失败,比如出现:downloadWix failed的情况),可行的解决方案为:

这一般是wix311-binaries.zip下载失败所致。可以先停止打包, 根据窗口中提示的链接,例如:
下载 wix311
直接点击链接在浏览器手动下载, 然后复制到:
C:\Users\xxx\.gradle\compose-jb\目录中, 改名为wix311.zip, 重新启动打包任务,即可成功。

在这里插入图片描述

原文链接


四、定位生成的可执行文件

构建成功后,在以下路径获取成果物:
build/compose/binaries/main/exe/

在这里插入图片描述
在这里插入图片描述


通过以上步骤,你的 KMP 应用已成功打包为发行版 Windows 安装程序!

Logo

一站式 AI 云服务平台

更多推荐