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

问询:如何为Compose Multiplatform生成安卓、iOS等多平台发布应用包

Compose Multiplatform 各平台发布包构建指南

Android:生成Google Play用AAB包

  • 先在build.gradle.kts(:android)里配置签名信息:
signingConfigs {
    create("release") {
        storeFile = file("你的密钥库文件.jks")
        storePassword = "密钥库密码"
        keyAlias = "密钥别名"
        keyPassword = "密钥密码"
    }
}
buildTypes {
    release {
        signingConfig = signingConfigs.getByName("release")
        isMinifyEnabled = true
        isShrinkResources = true
        proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
    }
}
  • 执行构建命令:./gradlew :android:bundleRelease
  • 生成的AAB包在android/build/outputs/bundle/release/目录下,直接上传到Google Play Console即可。
  • 注意:密钥库文件别提交到版本控制,建议用环境变量存储密码;开启R8混淆能大幅压缩包体积。

iOS:生成App Store用IPA包

  • 打开iOS模块的Xcode项目(路径iosApp/iosApp.xcodeproj),在「Signing & Capabilities」面板选择你的开发者账号,配置好Bundle ID和Team。
  • 生成归档:Xcode顶部菜单选「Product > Archive」,归档完成后会自动打开Organizer面板。
  • 导出IPA:在Organizer里选中刚生成的归档,点击「Distribute App」,选择「App Store Connect」,跟着向导完成配置,可直接上传到App Store或导出IPA文件备用。
  • 命令行方式:
    归档命令:xcodebuild archive -project iosApp.xcodeproj -scheme iosApp -archivePath ./iosApp.xcarchive
    导出命令:xcodebuild -exportArchive -archivePath ./iosApp.xcarchive -exportPath ./iosIPA -exportOptionsPlist ExportOptions.plist
    (需提前准备ExportOptions.plist,配置导出类型、签名信息等)

Web:Kotlin/WASM + Compose for Web打包

  • 在build.gradle.kts(:web)里确认wasm目标配置:
kotlin {
    wasmJs {
        moduleName = "你的Web应用名称"
        browser {
            commonWebpackConfig {
                outputFileName = "main.js"
            }
            distribution {
                directory = file("build/distributions/web")
            }
        }
        binaries.executable()
    }
}
  • 执行生产构建:./gradlew :web:wasmJsBrowserProductionWebpack
  • 生成的静态文件在web/build/distributions/web/目录下,包含HTML、JS、WASM文件,直接上传到任意静态托管服务即可部署。
  • 优化技巧:在commonWebpackConfig里添加devtool = false关闭source map,可减少包体积。

桌面平台:Windows/macOS/Linux分发包

方式1:JVM跨平台打包(一次配置多平台输出)

  • 在build.gradle.kts(:desktop)里配置native分发:
compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "你的应用名称"
            packageVersion = "1.0.0"
            vendor = "你的开发者/厂商名称"
            
            windows {
                menuGroup = "你的应用组名"
                upgradeUuid = "生成唯一UUID,用于MSI升级识别"
            }
            macOS {
                bundleID = "com.你的域名.应用名"
                signing {
                    identity = "Apple Development: 你的名字 (XXXXXX)" // 对应你的签名证书
                }
            }
            linux {
                deb {
                    maintainer = "你的名字"
                    description = "应用描述"
                }
            }
        }
    }
}
  • 执行构建命令:./gradlew :desktop:package
  • 生成的分发包在desktop/build/compose/binaries/下对应平台的目录中,比如Windows的MSI在windows-msi/,macOS的DMG在macos-dmg/,Linux的DEB在linux-deb/。

方式2:Native原生打包(性能更优,需对应平台环境)

  • 在build.gradle.kts(:desktop)里添加各平台的native目标:
kotlin {
    linuxX64("linux")
    macosX64("macos")
    macosArm64("macosArm")
    mingwX64("windows")
    
    targets.withType<KotlinNativeTarget> {
        binaries.executable {
            entryPoint = "main"
        }
    }
}
  • 构建对应平台的可执行文件,比如构建macOS Arm64版本:./gradlew :desktop:macosArm64BinariesExecutable
  • 生成的可执行文件在desktop/build/bin/macosArm64/release/(或debug)目录下,之后可使用平台原生工具(如macOS的create-dmg、Windows的WiX Toolset)打包成正式分发包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:05:01