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的签名信息是否一致。

文章来源于腾讯云开发者社区,点击查看原文