1、360加固宝,签名收費了,脚本上传加固也针对特定帐号才可实现。
本文将会分享安卓项目中,使用360加固,再用walle签名,产出多渠道加固包的全流程。
win10
jdk11
as2022+
gradle7.5
通过walle获取加固包的渠道名字正确。
整体思路如下:
项目产出release包–360加固–对齐,签名–walle多渠道
四个步骤。
当然,实现多渠道加固的方式,千差万别,这里仅仅时其中一种方式而已,有更好的方式可以评论区留言。
(1)引入walle依赖
整个多渠道的核心,是以walle展开的,再以360加固为辅助。
所以这里的第一步,就是引入walle的依赖。
而walle有两个较好的版本,一个是官方的版本,一个是民间大神升级适配gradle7.0+的版本,具体选择哪个,看项目。这里的demo,我选择的是民间版本。
https://github.com/Petterpx/walle(fork升级版)
https://github.com/Meituan-Dianping/walle (官方原版)
具体配置方法,上述两个链接都有,这里粗略提一下就算了。
//walle配置核心-start--------------------------
远程仓库地址
maven { url 'https://jitpack.io' }
classpath:
classpath 'com.github.Petterpx.walle:plugin:1.0.5'
主项目app,build.gradle中配置:
apply plugin: 'walle'
walle {
def outputFile = new File("${rootProject.rootDir}/walle/")
outputFile.deleteDir()
outputFile.mkdirs()
// 指定渠道包的输出路径
apkOutputFolder = outputFile
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${channel}-v${versionName}.apk'
// 渠道配置文件
channelFile = new File("${rootProject.rootDir}/channel")
}
implementation 'com.github.Petterpx.walle:library:1.0.5'
特别注意,一定要配置好项目的密钥,否则walle编译会报错
//walle配置核心-end-------------------------
对比官方,我这里重写了walle输出时候的目录构建方式,先删除,后创建。每次打包都是新的目录。
注意!!请认真阅读walle括号内的相关配置。
说这么多,上述的配置看看就行,跑通就行。因为不会用到官方原版的多渠道,这里只是配置一下而已。实际对多渠道包没有根本上的影响。
配置完成后,项目可安装,可打正式包,可以rebuild。即认为引入成功!
最后,在Activity中配置代码,用于查看后续的渠道信息:
val channel: String? = WalleChannelReader.getChannel(this.applicationContext)
Log.d("渠道", "当前渠道:${channel}")
(2)360加固
基于步骤(1)的情况下,点击项目的build–>signapk->打一个release包出来。
然后打开360加固宝进行加固。
点击添加,选择刚刚打好的release包,等待加固完成即可。
加固完成如下图:
这个时候下载的包,是没有签名的,仅仅是已经加固过了的。这个时候,我们要对这个包,进行签名,对齐。多渠道。
(3)重新签名
签名指令,相信做过发包的都已经知道了,下面举个代码例子:
jarsigner -verbose -keystore jiagu.jks -storepass 123456 -signedjar jiagu_signed.apk app-release_10_jiagu.apk jiagu
zipalign -p -f -v 4 jiagu_signed.apk jiagu_signed2.apk
apksigner sign --ks jiagu.jks --ks-key-alias jiagu --ks-pass pass:123456 --v1-signing-enabled true --v2-signing-enabled true -v --out .\jiagu_signed3.apk .\jiagu_signed2.apk
通过jarsigner,aipalign,apksigner进行签名和对齐,即可实现。这里值得一提的是,一定要先配置好windows系统环境,然后再去执行指令,否则会执行失败。
这里用到的jdk是11,sdk build-tools30。
具体就在window环境变量path添加对应的路径即可。
好了,环境配置好,执行完上述指令。那么,目录下,就会有一个apk_signed3.apk的包了。这个时候,就要对这个安装包,进行walle多渠道。
(3)walle多渠道
具体指令看官网:
https://github.com/Petterpx/walle/blob/main/walle-cli/README.md
这里用到的是walle-cli-all.jar进行打包,github可以找到然后下载。
具体指令如下:
java -jar wallejar/walle-cli-all.jar batch -f channel apk_signed3.apk
channel就是夺渠道的文件
具体要看你分发的市场配置,我这边的配置如下图:
这里就是单行文字进行渠道配置的。
最后,执行完指令,就可以看到目录下的渠道包了。然后安装,观察log具体输出是否符合预期即可。
在签名,对齐的情况,会有可能有很多问题,如:
(1)as jdk版本和系统环境jdk版本对不上,导致了签名失败,这个时候就要调整至一致的jdk环境,包括window中类似的Java_home变量,也要调整到和项目一致的jdk。
(2)保证生成的签名文件xxx.jks所使用的jdk环境和项目匹配。
一定要保证上述两个步骤的环境一致,签名才会执行成功,才能进行后续的多渠道打包。
that’s all-------------------------------------------------------------------------------------------------------------