paquete de múltiples canales Android

Walle oficial GitHub Dirección: https://github.com/Meituan-Dianping/walle

VasDolly oficial GitHub Dirección : https://github.com/Tencent/VasDolly

escalones de acceso VasDolly:

El primer paso: añadir esta línea de código en el Proyecto de build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.leon.channel:plugin:2.0.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

Paso dos: Módulo de build.gradle, añadir una referencia a la VasDolly

aplicar plugin: 'canal'

El tercer paso: En el Módulo a las referencias de proyectos dependientes de ayudante

api 'com.leon.channel:helper:2.0.1'

Cuarto paso: Configurar archivo de firma

Automated Packaging asegúrese de especificar signingConfig signingConfigs.release // Gradle en buildTypes envasado automático Asegúrese de añadir la frase, si no se puede agregar un paquete de depuración. La configuración del módulo en el proyecto

android {
    signingConfigs {
        debug {
            storeFile file('D:\\DownLoad\\VasDolly-master\\MyApplication\\vasdolly1.jks')
            storePassword '123456'
            keyAlias = '123456'
            keyPassword '123456'
        }
        release {
            storeFile file('D:\\DownLoad\\VasDolly-master\\MyApplication\\vasdolly1.jks')
            storePassword '123456'
            keyAlias = '123456'
            keyPassword '123456'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release//gradle 自动打包一定要添加这句
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug //可以没有
        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.cq.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

}
channel {
    //指定渠道文件
    channelFile = file("D:/DownLoad/VasDolly-master/MyApplication/channel.txt")
    //多渠道包的输出目录,默认为new File(project.buildDir,"channel")
    baseOutputDir = new File(project.rootProject.buildDir, "channel")
    //多渠道包的命名规则,默认为: 
    ${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
    apkNameFormat = '${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}'
    //快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
    isFastMode = false
    //buildTime的时间格式,默认格式:yyyyMMdd-HHmmss
    buildTimeDateFormat = 'yyyyMMdd-HH:mm:ss'
    //低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头 
    的内容块读取到内存,在手机上合成APK时,可以使用该模式
    lowMemory = false
}
rebuildChannel {
    //指定渠道文件
    channelFile = file("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\channel.txt")
    baseDebugApk = new File("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\baseApk\\app-debug.apk")
    baseReleaseApk = new File("D:\\DownLoad\\VasDolly-master\\VasDolly-master\\baseApk\\app-debug.apk")
    //默认为new File(project.buildDir, "rebuildChannel/debug")
    debugOutputDir = new File(project.rootProject.buildDir,"rebuildChannel/debug")
    //默认为new File(project.buildDir, "rebuildChannel/release")
    releaseOutputDir = new File(project.rootProject.buildDir,"rebuildChannel/release")
    //快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
    isFastMode = false
    //低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头的内容块读取到内存,在手机上合成APK时,可以使用该模式
    lowMemory = false
}

Entre ellos, nombrando paquete de múltiples canales, puede utilizar los siguientes campos:

appName: El nombre del proyecto actual

nombre de la versión: Variante del nombre de la versión actual

versionCode: Variante actual de versionCode

buildtype: 当前 variante 的 buildtype, 即 de depuración o la liberación

flavorName: El nombre del canal actual

Id de aplicación: Variante actual de applicationId

BUILDTIME: compilación actual fecha y tiempo de construcción, se puede personalizar el formato de hora, el formato por defecto: AAAAMMDD-HHmmss

Quinto paso: Paso 5: Inicio de embalaje, que puede entrar en la línea de comandos en un terminal en Android Studio

prueba gradlew channelDebug

oficial gradlew channelRelease

gradlew rebuildChannel APK utilizando el paquete multicanal original

El éxito, perfecto!

Publicado 49 artículos originales · ganado elogios 2 · Vistas 8572

Supongo que te gusta

Origin blog.csdn.net/yangjunjin/article/details/93760974
Recomendado
Clasificación