Android Signature V2 Scheme签名下的新一代渠道包打包神器--Walle(瓦力)使用详解

开头总要说点什么

话说Android studio升级到3.0后,发现打出来的渠道包在7.0的系统上无法安装,于是查了下资料,发现是V2签名的问题,于是开始着手配置V2签名的渠道包配置,
如果不需要V2签名的同学可以在gradle里这样设置

 android {
    ...
    defaultConfig { ... }
    signingConfigs {
      config{
        ...
        v2SigningEnabled false   //禁用V2签名
      }
    }
  }

准备

第一步当然是去github上了解Walle相关信息了

github项目地址


第二步:参照 README.md配置依赖
注意,你的项目必须签名,不然会出现如下错误

Error:Plugin requires 'APK Signature Scheme v2 Enabled' for release.

在位于项目的根目录 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'
}

添加完后,重新构建一下build,然后配置如下插件

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

文件名称可以根据需求随意改

好,重要时刻来了,开始打渠道包了,首先,我们要配置我们的渠道信息文件
在app包下新建一个channel.txt文件,写入渠道名,例如:
meituan # 美团
samsungapps #三星
hiapk
anzhi
xiaomi # 小米

·#为注释,不会写入渠道。当然文件也可以建在别处,只要路径,名称和walle{}里的channelFile的配置一样

下一步,打开Terminal,在AS的下方

这里写图片描述

输入指令:gradlew clean assembleReleaseChannels 即可生成所有的渠道包,如果只需要生成一个渠道,可以输入gradlew clean assembleReleaseChannels -PchannelList=渠道名 多个渠道用逗号隔开

如果出现“不是内部或外部命令,也不是可运行程序或批处理文件”这种错误,可以参考这篇博文: Android Studio Terminal 不是内部或外部命令,也不是可运行程序或批处理文件

一般两三分钟就构建完成了,这时,依次打开app–>build–>outputs–>channels就能看到我们打的渠道包了。

项目渠道获取

获取渠道可以通过下面的代码获取:
String channel = WalleChannelReader.getChannel(this.getApplicationContext());

到这里,我们的渠道包就生成了,最后,如果还有疑问的同学可以下载我的demo进行参考:

V2Channels

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值