Android 美团批量打包新方案


配置部分:
1、把channel文件和 打包key放入项目中

项目选择Project模式,注意文件所放位置,在app文件下



channel文件的渠道名字  # 后写备注内容



2、 配置build.gradle

在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:

buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.1.3'
    }
}

并在当前App的 build.gradle 文件中apply这个插件,并添加上用于读取渠道号的AAR

apply  plugin'walle'

dependencies {
    compile  'com.meituan.android.walle:library:1.1.3'
}

3、 配置插件

这里是我的设置,具体规则参考文档

walle {
    //  指定渠道包的输出路径
//    apkOutputFolder = new File("${project.buildDir}/outputs/channels");
    apkOutputFolder =  new File( "D:/APK/MakeAPK")
    //  定制渠道包的 APK 的文件名称
    apkFileNameFormat =  '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
    //  渠道配置文件
    channelFile =  new File( "${ project. getProjectDir()} /channel.txt")
}

3、关联打包key 和密码

android {
    compileSdkVersion  25
    buildToolsVersion  "25.0.2"
    defaultConfig {
        applicationId  "com.zs.login.myvarioustest"
        minSdkVersion  15
        targetSdkVersion  25
        versionCode  1
        versionName  "1.0"
        testInstrumentationRunner  "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        pkg {
            storeFile file( "keystore/test.jks")
            storePassword  "qazwsx"
            keyAlias  "test"
            keyPassword  "qazwsx"
            v2SigningEnabled  true // 是否启用 APK Signature Scheme v2
        }
    }

    buildTypes {
        release {
            minifyEnabled  false //minifyEnabled 是否启用混淆
              shrinkResources  false // 删除无效的 Resource
            proguardFiles getDefaultProguardFile( 'proguard-android.txt'),  'proguard-rules.pro'
            signingConfig signingConfigs.pkg
        }
    }
}

4、查看  渠道  
我是写在了application中,安装批量打包成功后得包,检测渠道是否写入成功

public class MyApp  extends Application {

    @Override
    public void  onCreate() {
        super.onCreate() ;

        String channel = WalleChannelReader. getChannel( this.getApplicationContext()) ;
        Log. d( "My_Channel" , "channel = " + channel) ;
    }
}

5、

打包方案:

方法一: Studio中直接打包

此方法异常简单,就一步:

Terminal 下 运行一句命令:gradlew clean assembleReleaseChannels

这是打所有渠道的包,其他操作(打单独的包)参看文档










耐心等待打包结束就好了,去指定的文件查看打出的包即可

方法二:命令行打包
1、下载美团提供的jar包,我是在csdn中下的



2、新建一个文件夹,把打包的channel文件,和 Studio中打的一个包(默认渠道或者没有的)放进去,批量打完的包会在这里。



3、打开cmd,命令行进入第一步放jar的地方



4、检差jar包是否正常(这步可以不要)
输入:
java -jar walle-cli-all.jar -h


5、开始打包输入命令:
java -jar walle-cli-all.jar batch -f D:/APK/MakeAPK/channel.txt  D:/APK/MakeAPK/MyVariousTest.apk

注意,里面channel 文件和 先打的包的位置,请替换你的文件所在的位置



6、打包完成,查看包


7、

8、



猜你喜欢

转载自blog.csdn.net/qq55214/article/details/73883926