-
-
[原创]”只用 1分钟“-超简极速 Apk签名&多渠道打包神器
-
发表于: 2022-6-14 15:02 6681
-
众所周知,渠道包作为当下国内Android应用市场常见的分发方式,当APP和后台交互或进行数据上报时,会带上各自的channel渠道信息,以此方便企业&开发者统计APP在各渠道的下载量、用户量、留存率等关键活跃数据,并针对性的调整应用内容和推广方案。而Android应用市场存在大大小小几百个商店,每当需要发布APP或迭代新版本,往往需要开发者生成多个渠道包或是在各应用市场重新分发,且官方提供的ProductFlavor多渠道打包工具,对于每一个渠道包,都需要进行一次完整的APK打包过程,对于注重效率的开发者而言整个环节其实相当耗时,是否有更好的多渠道签名打包方案呢?
近期,顶象技术团队开源了自己的Android apk打包工具,精简,高效,应用开发者需要的多渠道打包神器来了!
顶象Apk签名和多渠道打包工具
下载后的包内文件:
一.签名功能简介
我们先来看看V1和V2签名的区别:
在Android Studio中点击菜单 Build->Generate signed apk... 打包签名有两种签名选项 V1(Jar Signature) V2(Full APK Signature),
从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);
但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)
V1签名:
• 来自JDK(jarsigner), 对zip压缩包的每个文件进行验证, 签名后还能对压缩包修改(移动/重新压缩文件)
• 对V1签名的apk/jar解压,在META-INF存放签名文件(MANIFEST.MF, CERT.SF, CERT.RSA),
• 其中MANIFEST.MF文件保存所有文件的SHA1指纹(除了META-INF文件), 由此可知: V1签名是对压缩包中单个文件签名验证
V2签名:
• 来自Google(apksigner), 对zip压缩包的整个文件验证, 签名后不能修改压缩包(包括zipalign),
• 对V2签名的apk解压,没有发现签名文件,重新压缩后V2签名就失效, 由此可知: V2签名是对整个APK签名验证
V2签名优点很明显:
• 签名更安全(不能修改压缩包)
• 签名验证时间更短(不需要解压验证),因而安装速度加快
顶象apk签名工具默认同时使用V1+V2签名方式,用于对android加固后的apk进行重新签名。
启用工具界面:
使用说明
下载顶象签名工具dx-signer.jar,双击运行。
选择输入apk、aab文件。
选择签名的key文件,并输入key密码。
选择重签后apk、aab的路径,以apk结束。如:D:\sign.apk
点击“签名”按钮,等待即可签名完成。
ps:如果有alias(证书别名)密钥的或者有多个证书的,请在高级tab中选择alias并输入alias密码
命令行界面:
支持的option如下:
例如:
二.多渠道功能简介
顶象多渠道工具兼容友盟和美团walle风格的多渠道包,方便客户把APP发布到不同的应用平台,进行渠道统计。
使用说明:
在app中预留读取渠道信息的入口,具体见读取渠道信息
在签名使用基础上,点击选择渠道清单
选择清单文件channel.txt。具体文件格式见渠道格式文件说明
点击签名,等待生成多个带签名的渠道app
读取渠道信息
顶象多渠道工具兼容友盟和美团walle风格的多渠道包,下面是两种不同风格的渠道信息读取方法。选其中之一即可。
您可以读取这个字段。
渠道文件格式说明
请准备渠道清单文件channel.txt, 格式为每一行一个渠道, 例如:
License
三.常见问题:
关于app签名:
Q: app签名是什么?
A: 签名就是用于识别app开发者,并保证apk完整性的一个机制,谷歌要求每一个app都需要有签名。
Q: 为什么上传的app需要有签名?
A: 加固有防二次打包的功能,需要提前apk原本的签名,供加固后验证签名正确性用。
Q: 在 androidstudio 中打出的debug版本包,可以加固吗?
A: 不建议用debug版本包加固,因为debug版本的包使用的是androidstudio的debug签名,可能导致加固后无法重签名,或者签错名的情况。导致无法正常运行。
关于加固后重签名:
Q: 上传之前apk已经签过名了,为什么加固后又要重新签一次?
A: 加固之后会破坏apk原有的签名,所以需要重新签名,否则无法安装。
Q: 为什么重签名需要和加固前保持一致?
A: 如果不保持一致,则会触发加固的防二次打包功能,无法正常运行。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!