文章

渠道包

渠道包

渠道包方案

1、productFlavor

其实就是采用 gradle 去配置不同的 productFlavor,然后用 manifestPlaceholder 占位符去解析 manifest 文件里面的 meta-data 的 value,来进行打包,耗时耗力,原理就是一个一个包去打,虽然免去了手动,但是很耗时。

2、美团一代

这种只有在 v1 签名的时候才可以这么做,它将 APK 直接当做 zip 解压,目录里会有一个 META-INF 目录而此目录是不参与签名校验的。

因此在 META-INF 目录内添加不同渠道名的空文件,可以唯一标识一个渠道。采用这种方式,每打一个渠道包只需复制一个 apk,在 META-INF 中添加一个使用渠道号命名的空文件即可。

3、美团二代

由于 7.0 之后的签名机制都是 v2 了,所以美团一代的打包方式已经不可行了,于是美团出了新的打包方案,就是通过在 Apk 中的 APK Signature Block 区块添加自定义的渠道信息来生成渠道包,从而提高了渠道包生成效率,可以作为单机工具来使用,也可以部署在 HTTP 服务器上来实时处理渠道包 Apk 的升级网络请求。

打包一次即可完成几百个包的生成

本文由作者按照 CC BY 4.0 进行授权