加固、签名与发布

絮叨

听说三六零也耍起了大牌(líu máng),在手机助手上发布的应用被要求必须采用360加固,跟百度这个老流氓真是如出一辙。想想未来客户多起来之后、需要发布的一波又一波APK到各种渠道的需求,真是酸爽至极。

然而加固还是必须的,去年年初还特意了解了一部分加固的原理与实现——虽然现在也快忘的差不多了。今天刚好有个客户APK需要发布,按照我厂一直以来的做法使用了阿里的加固方案,流程基本是上传APK-》选择渠道-》下载下来已加固好但是需要重新签名的APK。本以为重新签名只不过是一条命令的事儿,并且之前在研究加固的时候也没少用过,但还是栽到了坑里一遍又一遍。来回了几个小时才弄清楚。总结起来其实只有一句话,“本身命令不熟,–help语焉不详,网上文章靠谱的也不多”。

重新签名

以下是成功签名的命令:
jarsigner -verbose -keystore keystore全路径 -storepass 签名的storePassword -keypass 签名的keyPassword -signedjar 签名后生成的新APK全路径 需要签名的APK的全路径 签名的keyAlias

以下是碰到的一些报错:

  • jarsigner: 找不到tuyasmart的证书链。tuyasmart必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目
**我是犯了签名的keyAlias写错了的错误,报这个错误**
  • jarsigner: 无法打开 jar 文件: *

    -signedjar 这个参数后面跟路径的顺序:先放签名后应用的路径、后面才是需要被签名的源APK文件路径,我给放反了,所以总是翻来覆去的无法打开jar包,囧……

谷歌渠道发布

谷歌渠道似乎还强制了必须做4字节对齐的优化:

失败的上传

那么你还需要做一下字节对齐的操作:

$ANDROID_HOME/build-tools/23.0.2/zipalign -v 4 需要执行字节对齐操作的APK全路径 执行完字节对齐的APK全路径

总结

  • 记忆是有时限的,之前玩儿的再溜,太久不用也会忘
  • 踩坑也是靠缘分的,从来都不记得重新签个名会有这么多事,那就意味着之前是机缘巧合避开了操作上的坑
  • 基础知识总是不够用的,踩了坑之后要及时笔记以供后续参考,网上找别人的文章能不能靠谱也很难说(或许别人也是这样看我的文章),下笔尽量严谨些

感谢您赏个荷包蛋~