【问题标题】:How to generate a separate signed APK for each flavor?如何为每种风味生成单独的签名 APK?
【发布时间】:2018-02-27 11:26:38
【问题描述】:

我正在使用 Android Studio 3 更新 Android 应用程序。以前的版本是使用 Android Studio 2 创建的。

当我使用 Android Studio 2 构建最后一个版本时,已经创建了两个单独的 APK,一个用于我配置的每种产品风格。现在在 Android Studio 3 中,“Generate Signed APK”对话框只提供了“combined” flavor,它创建了一个包含这两种风格的 APK:

应用 Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.MyApp"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 42
        versionName "2.0.1"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "freemium", "free"
    productFlavors {
        MyApp {
            dimension "freemium"
        }
        MyAppFree {
            dimension "free"
            applicationId 'com.example.MyApp.Free'
        }
    }
}
  • 在 Android Studio 中选择“构建/生成签名的 APK...”
  • 输入我的密钥库密码并单击下一步
  • 在下一页上,我可以选择目标文件夹、构建类型(发布)和风格。虽然 v2 提供了两种风格(MyApp 和 MyAppFree),但 v3 仅提供 MyApp-MyAppFree
  • app-MyApp-MyAppFree-release.apk 被创建而不是 app-MyApp-release.apkapp-MyAppFree-release.apk

如何解决这个问题?

【问题讨论】:

    标签: android android-studio android-gradle-plugin apk


    【解决方案1】:

    好的,问题是由于两种口味使用了不同的口味维度。 Gradle 为每个维度组合创建一个组装任务:MyAppMyAppFree 在我的例子中

    我添加维度只是为了在从 Android Studio 2 更新到 3 时消除警告“所有风味现在必须属于一个命名风味维度”。由于我实际上没有使用维度解决方案是简单地为两种口味使用一维:

    flavorDimensions "default"
        productFlavors {
            MyApp {
                dimension "default"
            }
            MyAppFree {
                dimension "default"
                applicationId 'com.example.MyApp.Free'
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 2016-02-29
      • 2018-12-17
      相关资源
      最近更新 更多