美文网首页jenkins for App首页投稿(暂停使用,暂停投稿)Android知识
二.jenkins配合Gradle实现自签名,自定义APK名称

二.jenkins配合Gradle实现自签名,自定义APK名称

作者: 微小码 | 来源:发表于2016-06-29 16:47 被阅读2445次

    上一篇文章:
    一.jenkins+github+gradle 实现android自动化打包全攻略(MAC版)
    http://www.jianshu.com/p/9caab25d2cf1
    上次已经实现自动打包,那么如何进行APK自定义包名呢?如何进行自签名呢?
    主要通过设置项目的build.gradle

    Paste_Image.png

    一.自定义APK的名称

    比如格式为:时间项目名称版本号.apk

    Paste_Image.png
    applicationVariants.all { variant -> 
    if (variant.buildType.name.equals('release')) { 
    variant.outputs.each { output -> def outputFile = output.outputFile 
    if (outputFile != null && outputFile.name.endsWith('.apk')) { 
    def fileName = "${releaseTime()}_com.andli.myproject_${defaultConfig.versionName}.apk" 
    output.outputFile = new File(outputFile.parent, fileName) 
    } 
    } 
    }
    }
    
    def releaseTime() { 
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
    }
    

    还可以自定义APK的输出路径:比如导出到下载目录
    output.outputFile = new File("/Users/XXX/Downloads", fileName)

    二.自定义签名

    Paste_Image.png
    signingConfigs {//签名的配置 
    release { 
    storeFile file("签名文件名称.jks") 
    storePassword '密码' 
    keyAlias '签名文件别名' 
    keyPassword '密码' 
    } 
    }
    
    signingConfig signingConfigs.release//打包命令行:gradlew assembleRelease
    
    lintOptions {//设置编译的lint开关,程序在buid的时候,会执行lint检查,有任何的错误或者警告提示,都会终止构建 
    abortOnError false 
    }
    

    打包后的效果:

    Paste_Image.png

    待解决的问题

    APK名称带时分秒,但是时与北京时间相差8小时


    Paste_Image.png

    解决办法:获取重庆时间

     new Date().format("yyyyMMdd HH:mm:ss", TimeZone.getTimeZone("Asia/Chongqing"))
    
    Paste_Image.png

    参考文章:
    http://www.jianshu.com/p/83a99e26826c

    image

    相关文章

      网友评论

      • stevenzq:时间格式要改下,否则会报错 (我的AndroidStudio版本3.1.2 gradle2-3.5-all.zip)

        //Asia/Chongqing GMT+8:00
        return new Date().format("yyyyMMdd HH-mm-ss", TimeZone.getTimeZone("Asia/Chongqing")) //年月日时分秒
      • 57d0418d8a31:你好,经过我实践,HH和mm之间是不能有冒号的,Asia/设置成北京与实际时间差了4小时
        微小码:@一只独行的猫头鹰 感谢指导:+1:
      • openGL小白:return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
        你这里时区设置不对,所以差了8小时,你可以去看一下,在new 时设置locate到中国这个时区

        同时想问一下,这种自定义apk名称后,如何在jenkins中再执行android的安装和monkey测试,这时那里的路径不知道怎么组装出apk名称。
        微小码:@coolstar1204 感谢你的回复,你问的那个问题 ,目前我也没有好的解决方案,抱歉

      本文标题:二.jenkins配合Gradle实现自签名,自定义APK名称

      本文链接:https://www.haomeiwen.com/subject/warxjttx.html