build_channel_pack
Introduction: 快速生成 apk 渠道包, 1 分钟可生成 1000 个渠道包
Tags:
快速打包-原理:
把一个 Android 应用包当作 zip 文件包进行解压,在签名生成的目录下(META-INF)添加一个空文件不需要重新签名。利用这个机制,该文件的文件名就可以是渠道名。
MultiChannelBuildTool.py 用于 python 代码用来给 apk 添加空的渠道文件,渠道名的前缀为 ygs,python 代码是 3.0 以上
zipped = zipfile.ZipFile(target_apk, 'a', zipfile.ZIP_DEFLATED)
# 初始化渠道信息
empty_channel_file = "META-INF/ygschannel_{channel}".format(channel = target_channel)
# 写入渠道信息
zipped.write(src_empty_file, empty_channel_file)
# 关闭 zip 流
zipped.close()
ChannelUtil.java 用于获取渠道号
注意:
暂不支持 Signature Scheme v2 签名模式, 在 Android 7.0(Nougat)推出了新的应用签名方案 APK Signature Scheme v2, 它是一个对全文件进行签名的方案,能提供更快的应用安装时间、对未授权 APK 文件的更改提供更多保护. 目前该方案不是强制性的,在 build.gradle 添加 v2SigningEnabled false ,就能使用传统签名方案来签署我们的应用(见下面的代码片段)。
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
v2SigningEnabled false
}
}
}
