Android友盟多渠道打包方式导致信息流审核出现mainfest文件用户classes2.dex文件不一致的问题

这里解决方案是以V1(用java -jar签名)与V2(使用apksigner对所有文件进行签名)两种方式签名的包,流程仅供参考

出发点:运营为了统计信息流渠道的转换量

以下以Mac的操作方式讲解,具体步骤如下:

第一步:将打包好的apk包使用解压工具打开不要解压,不要解压,不要解压,将信息流渠道包中的mainfest文件直接拖到信息流对应的应用市场渠道包中并覆盖应用市场apk包的mianfest文件,简单来说就是你的两个渠道包A.apk(发到应用市场的包),B.apk(发给信息流的包),把A,B分别用解压工具打开,把B中的mainfest文件直接拖到A中,覆盖掉A中的mianfest文件(注意拖拽的时候一定要使用好的解压软件或者使用win7,经测试win10的好压不行,以下会以A,B.apk作为实例包)
第二步:找到你sdk所在的磁盘选择build-tools版本的话建议选择28+的点击进去,会找看到一个apksigner,还有zipalign,我们需要使用的就是这两个工具
2.1 我以29.0.2为例,打开终端,apksigner所在的目录,我的目录是这样的
cd /Users/(你电脑的用户名)/Documents/android-sdk/build-tools/29.0.2
2.2 将修改后的A.apk和你项目的.jks文件或者.keystore文件放到当前目录下,方便使用
2.3 对A.apk进行4字节也就是4k对齐,具体为什么要对齐,为什么要用4字节对其,请自行查阅相关文章这里不赘述
zipalign -v -p 4 A.apk  (新的apk名字自己定义,我这里用C表示)C.apk
2.4 将新生成的包做签名
 apksigner sign --ks xxx(文件名).jks --ks-key-alias xxxx(证书别名) --ks-pass pass:xxxx(密码)  --key-pass pass:xxxx(确认密码) --out (apk名字自己定义,我以D表示)D.apk C.apk

到此 新包完成,你可以使用

adb install 进行测试,没有问题,到此结束!

你可能感兴趣的:(Android友盟多渠道打包方式导致信息流审核出现mainfest文件用户classes2.dex文件不一致的问题)