之前一直使用360加固宝进行apk的加固打包,可以一键加固并打多渠道打包。
但是,现在360加固宝收费了,在进行加固,多渠道打包,就得一步一步自己操作了,会很繁琐。
所以,本文使用 360加固+美团Wallet 方式,进行加固并多渠道打包。
准备好要加固的包,例如我要加固demo.apk,然后在首页 添加应用,会自动上传并加固该apk
(注意:加固后,会破坏签名文件,需要重新签名,否则不能安装)
加固好的apk文件,使用360加固宝自带的签名工具,进行签名:
选择刚才加固的apk,输入keystore 文件相关配置(没有也可以制作签名),进行签名
填好后,点击开始签名,则会自动签名。
签名后,会生成如下文件:
demo_104_jiagu.apk 是加固后的文件
demo_104_jiagu_sign.apk 是加固并签名后的文件。
首先,下载打包工具:packer-ng-2.0.1.jar。链接:https://github.com/mcxiaoke/packer-ng-plugin
然后项目中配置:
// build.gradle
buildscript {dependencies{classpath 'com.mcxiaoke.packer-ng:plugin:2.0.1'}
}
// build.gradle
dependencies {implementation 'com.mcxiaoke.packer-ng:helper:2.0.1'
}
获取渠道名方式:
// 如果没有找到渠道信息或遇到错误,默认返回的是""
// com.mcxiaoke.packer.helper.PackerNg
String channel = PackerNg.getChannel(Context)
然后使用 脚本多渠道打包:
我在桌面创建了一个文件夹(多渠道打加固包),将 packer-ng-2.0.1.jar放到该目录中,然后将刚才加固并签名好的包,放到该文件夹中:
其中:apk目录是多渠道打包,生成渠道包的目录
channels.txt 是对应的渠道名,例如,我打四个商店的渠道包:
然后,cmd 命令行,定位到该目录下,可以使用快捷方式:直接在顶部路径中,输入cmd
执行命令:
java -jar packer-ng-2.0.1.jar generate --channels=@channels.txt --output=apk source.apk
说明:
@channels.txt :目录下的渠道包txt
output=apk :打包生成文件的目录
source.apk :需要打包的apk文件
生成对应的渠道包:
会在apk目录下,生成对应的渠道包:
到这里,加固并多渠道打包,就完成了。
后续如果需要在打包,可以直接使用加固好的包,然后重复步骤二就行。