Android-Gradle-自动化多渠道打包

exec {
// 执行加固,然后自动签名,若不采取自动签名,需要自己通过build-tools命令自己签名
executable = ‘java’
args = [‘-jar’, packers[“jarPath”], ‘-jiagu’, releaseApk.absolutePath, app[“packersPath”], ‘-autosign’]
println ‘packers=excute 360 jiagu’
}
println 'packers
=360 jiagu finished’
println “packers===360 jiagu path ${app[“packersPath”]}”
}

自动签名

关于自动签名,其实360在加固的时候提供了自动签名的配置选项,如果你不想将签名文件上传给360,在加固后可以自己选择手动签名,因为这涉及到安全性的问题,此版本我采取的是360自动签名,如果大家想自己手动签名,下面我给出一套方案,主要是利用 zipalignapksigner命令 他们都是位于SDK文件中的build-tools目录中,我们执行自动化签名需要gradle配置好路径。

  • 对齐未签名的apk

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

  • 使用你的私钥为apk签名

apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk

  • 验证apk是否已经被签名

apksigner verify my-app-release.apk

基于加固Apk自动实现多渠道

关于多渠道打包,我们之前项目一直使用的是腾讯的VasDolly,故我们此次是采取VasDolly命令,但是需要先下载VasDolly.jar,至于放在什么位置没有要求,只需要gradle配置好路径即可,我直接是放在项目根目录。也可以使用360的多渠道加固,实际上整套都可以使用360加固提供的命令。

/**

  • 腾讯channel重新构建渠道包
    */
    def reBuildChannel() {
    File channelFile = file(“${app[“channelPath”]}/new”)
    if (!channelFile.exists()) {
    channelFile.mkdirs()
    }
    def cmd = “java -jar ${app[“vasDollyPath”]} put -c ${”…/channel.txt"} ${outputpackersApk()} ${channelFile.absolutePath}"
    println cmd
    cmd.execute().waitForProcessOutput(System.out, System.err)
    println ‘packers===excute VasDolly reBuildChannel’
    }

敏感信息存取

我们都知道,签名需要签名文件,密码、别名等等文件,360加固需要配置账号与密码,这些都属于敏感信息,google官方不建议直接放在gradle中,它是以纯文本记录在gradle中的,建议存储在properties文件中。

// 把敏感信息存放到自定义的properties文件中
def propertiesFile = rootProject.file(“release.properties”)
def properties = new Properties()
properties.load(new FileInputStream(propertiesFile))

ext {
// 签名配置
signing = [keyAlias : properties[‘RELEASE_KEY_ALIAS’],
keyPassword : properties[‘RELEASE_KEY_PASSWORD’],
storeFile : properties[‘RELEASE_KEYSTORE_PATH’],
storePassword: properties[‘RELEASE_STORE_PASSWORD’]
]

// app相关的配置
app = [
//默认release apk的文件路径,因为加固是基于release包的
releasePath : “ p r o j e c t . b u i l d D i r / o u t p u t s / a p k / r e l e a s e " , / / 对 r e l e a s e a p k 加固后产生的加固 a p k 地址 p a c k e r s P a t h : " {project.buildDir}/outputs/apk/release", //对release apk 加固后产生的加固apk地址 packersPath : " project.buildDir/outputs/apk/release",//releaseapk加固后产生的加固apk地址packersPath:"{project.buildDir}/outputs/packers”,
//加固后进行腾讯多渠道打包的地址
channelPath : “${project.buildDir}/outputs/channels”,
//腾讯VasDolly多渠道打包jar包地址
vasDollyPath: “…/VasDolly.jar”
]

// 360加固配置
packers = [account : properties[‘ACCOUNT360’], //账号
password : properties[‘PASSWORD360’], //密码
zipPath : “ p

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值