1. 为什么加固后需要重签名?
加固过程中会破坏apk的签名文件,此时直接安装时会出错,找不到签名。因此需要重新签名,重签名后的apk签名文件和原来的保持一致就不会影响更新应用。
2. 能否多次加固?
不能多次加固。如果加固前的文件名为app-release.apk,在官网下载的加固包为app-release_legu.apk,接着使用PC工具重签名后,最终变为app-release_legu_signed_zipalgin.apk,这个安装包就已经是加固完成好的,不需要再加固了,自测没有问题就可以直接上传到应用宝了。
3. 兼容美团walle多渠道打包吗?
不直接兼容,但有变通办法。walle项目地址:https://github.com/Meituan-Dianping/walle,根据说明配置好依赖,生成多渠道包。如果生成的应用宝渠道文件为app-xyz.huaq.cmake-yyb-release-v1.0-1-20180605-201855.apk, 在官网上加固后文件名多了"_legu',使用6中的命令行apksigner进行v2签名,最终的文件名相比最开始多了"_legu_zipalign_signed"。
walle提供了命令行打渠道方式:https://github.com/Meituan-Dianping/walle/tree/master/walle-cli
下载后执行:
java -jar walle-cli-all.jar put -c yyb app-xyz.huaq.cmake-yyb-release-v1.0-1-20180605-201855_legu_zipalign_signed.apk
最终生成文件app-xyz.huaq.cmake-yyb-release-v1.0-1-20180605-201855_legu_zipalign_signed_yyb.apk
自测运行正常,多渠道信息存在,就可以上架应用宝了。
4. walle和友盟该怎么协调?
使用友盟不一定要在manifest文件中描述渠道信息
UMConfigure.init(Context context, String appkey, String channel, int deviceType, String pushSecret);
可以通过walle获取多渠道信息,填到上述初始化方法中。
5. 加固后应用安装失败?
如果应用安装失败,可能是没有签名、手机已经安装了相同版本apk、签名等等。
安装好android sdk ,并配置环境变量。在cmd中执行adb install *.apk即可看到具体的安装错误信息。
6.如何确定哪个apk是已经加固的?
使用乐固加固的apk,右键压缩软件解压,可看到tencent_stub文件;
加固后文件名一般会添加"_legu",如果使用工具签名成功,一般会在文件名后面补充"zipliagn_signed"或者"signed",表示已经签名成功。
7.如何查看apk的签名信息?
安装好java,并配置环境变量。
在cmd中执行:keytool -printcet -jarfile *.apk即可看到apk的签名MD5字段信息。确认加固前后apk的签名信息是否一致。