如何为单模块Google即时应用设置与可安装版不同的versionCode?
单模块即时应用与可安装应用versionCode差异化配置方案
不用创建不同的应用包(productFlavors),直接通过Gradle配置为即时应用和可安装应用设置独立的versionCode,具体实现如下:
核心思路
Google Play允许同一包名下,即时应用与可安装应用拥有各自独立的versionCode序列,只要各自版本号不重复即可。我们可以通过Gradle的变体配置,针对即时应用构建单独覆盖versionCode,无需拆分包名。
具体Gradle配置
在app模块的build.gradle(或build.gradle.kts)中添加以下配置:
Groovy版本
android { defaultConfig { // 可安装应用的基础versionCode versionCode 100 versionName "1.0.0" // 其他默认配置... } // 针对即时应用变体单独设置versionCode instantApp { // 可设置为与可安装版不重叠的数值,比如基础版+100 versionCode defaultConfig.versionCode + 100 } }
Kotlin DSL版本
android { defaultConfig { versionCode = 100 versionName = "1.0.0" // 其他默认配置... } instantApp { versionCode.set(defaultConfig.versionCode.get() + 100) } }
补充说明
- 构建时,Android Studio会自动生成两个版本的安装包:可安装应用使用
defaultConfig中的versionCode,即时应用使用instantApp块中设置的versionCode。 - 如果使用App Bundle(AAB),同一个AAB可以包含两种版本的内容,Google Play会自动拆分分发,versionCode的配置逻辑保持不变。
- 上传到Google Play时,分别提交对应版本的包即可,两者的versionCode无需关联,只要各自的版本号递增即可。
内容的提问来源于stack exchange,提问作者StefanMK
相关产品推荐
相关产品推荐

