Hel*_*oCW 5 gradle android-studio build.gradle
我用下面的build.gradle生成的apk文件,其结果将是的放大镜-V1.01-自由release.apk为免费版 的放大镜-V1.01-PRO-release.apk的亲版。-free-release或-pro-release由Android Studio 3.4.2自动作为后缀添加到文件名中。
我尝试使用相同的build.gradle产生.aab文件,我发现结果的放大镜-V1.01的免费和 的放大镜-V1.01为亲,有相同的,为什么呢? Android Studio 3.4.2不会自动将-free-release或-pro-release作为后缀添加到文件名中。
新增内容:
就像Image 1一样,我使用Android Studio生成了不同版本的.apk和.aab 。
build.gradle
android {
compileSdkVersion 28
flavorDimensions "default"
defaultConfig {
applicationId "info.dodata.magnifyingglass"
minSdkVersion 21
targetSdkVersion 28
versionCode 2
versionName "1.02"
archivesBaseName = "MagnifyingGlass-V" + versionName
}
productFlavors {
free {
applicationId "info.dodata.magnifyingglass"
}
pro {
applicationId "info.dodata.magnifyingglass.pro"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "boolean", "IsDebugMode", "false"
}
debug {
buildConfigField "boolean", "IsDebugMode", "true"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为捆绑包的名称被严格应用(问题跟踪器上可能有相关的票证)。一旦在这里留下了一个解决方法: How to Change the generated filename for App Bundles with Gradle?
此方法还可用于根据最终任务的名称来最终确定这些风格。另一种优化是在生成的包上使用Apache Ant 集成。由于某种原因(我不知道),Gradle 不支持开箱即用的移动(重命名)操作。
此配置看起来毫无用处(并且可能缺少其他配置):
buildConfigField "boolean", "IsDebugMode", "true"
Run Code Online (Sandbox Code Playgroud)
因为在 Java 中这被称为BuildConfig.DEBUG; 最好用配置替换它applicationIdSuffix ".debug"- 并添加相应的applicationIdSuffix ".release"(这听起来很像预期的结果);例如:
buildTypes {
release {
applicationIdSuffix ".release"
...
}
debug {
applicationIdSuffix ".debug"
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |