簡體   English   中英

如何為每種口味生成單獨的簽名APK?

[英]How to generate a separate signed APK for each flavor?

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

當我使用Android Studio 2構建最新版本時,已經創建了兩個單獨的APK,其中一個針對我配置的每種產品。 現在,在Android Studio 3中,“生成已簽名的APK”對話框僅提供“組合”樣式,該樣式創建了一個包含兩種樣式的APK:

應用程式搖籃

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 ...”
  • 輸入我的密鑰庫密碼,然后單擊下一步
  • 在下一頁上,我可以選擇目標文件夾,構建類型(發行版)和口味。 盡管第2版在這里提供了兩種風格(MyApp和MyAppFree),但第3版僅提供MyApp-MyAppFree
  • app-MyApp-MyAppFree-release.apk而不是app-MyApp-release.apkapp-MyAppFree-release.apk

如何解決這個問題?

好的,問題是由於兩種風味使用不同的風味維 s引起的。 Gradle為每個尺寸組合創建一個組裝任務: MyAppMyAppFree

當我從Android Studio 2更新到3時,我只是添加了尺寸以消除警告“現在所有調味品都必須屬於命名的調味品尺寸”警告。由於我並未實際使用尺寸,因此解決方案是將兩個調味品僅使用一個尺寸:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM