背景:现在项目使用的是第三方加密:爱加密,jenkins配置完打包后 打出正式包 再交由第三方平台加密 之前是手动上传 ,这就相对来说不够自动化。
- 下面是通过脚本自动上传爱加密的逻辑
- 1.执行完assembleRelease 打出混淆的apk
- 2.将生成的apk 绝对路径进行加固
//打包开发环境apk 混淆 再加固 打渠道包到i加密服务器 上传蒲公英 发送邮件功能使用蒲公英自带的邮件功能
task packageReleaseDingTalk {
def apkDirPath = "${project.buildDir}/outputs/apk/release"
deleteDir(apkDirPath)
dependsOn("assembleRelease")
doLast {
def apkFile = fetchApk(apkDirPath)
def jPath = jiagu(apkFile)
}
}
- 加固和渠道包的逻辑如下
private def jiagu(File apkFile) {
def jarPath = '../encrypt/ijiami-v4.2.5.jar'
File jarFile = file(jarPath)
if (!jarFile.exists()) {
if (!jarFile.parentFile.exists()) {
jarFile.parentFile.mkdirs()
}
exec {
executable = 'curl'
args = ['-o', jarPath, 'https://tc-app-01.oss-cn-shenzhen.aliyuncs.com/encrypt/ijiami-v4.2.5.jar']
}
}
return uploadServer(apkFile)
}
//配置请求到i加密服务器
private def uploadServer(File apkFile) {
def jiaguApkName = 'ijiami_signed'
def strategy = '项目名字'
def jiaguSignJks = '你的.jks'
//加固渠道配置
def channel = 'release'
exec {
executable = 'java'
args = ['-jar', '../encrypt/ijiami-v4.2.5.jar', '-t', 'apk', '-u', 'https://runenc.ijiami.cn:8080', '-r', '你的帐号', '-w', '你的密码', '-k', apkFile.path, '-s', strategy, '-i', true, '-g', jiaguSignJks, '-d', apkFile.parentFile.path, '-n', jiaguApkName, '-p', true, '-c', channel]
}
return "${apkFile.parentFile.path}/${jiaguApkName}.apk"
}
先下载爱加密提供的jar 下载完去配置对应的配置文件 上传。就ok了
网友评论