一.打包输出路径及名称

gradle3.0.0之前:

//修改生成的apk名字android{        applicationVariants.all { variant ->            if (variant.buildType.name.equals('release')) {                variant.outputs.each { output ->                    def parent = './apk/'                    def buildName                    def releaseApkName                    def type = variant.buildType.name;                    releaseApkName = buildName + '_' + type + "_" + versionName + '_' + getDate() + '.apk'                    output.outputFile = new File(parent, releaseApkName)                }            }      }}

3.0+之后

android{  applicationVariants.all { variant ->        if (variant.buildType.name.equals('release')) {//防止AS无法安装debug包(apk)            variant.outputs.all { output ->                //打包名字               outputFileName = 'unite_v' + variant.versionName + '_' + variant.productFlavors[0].name + '_' + buildType.name + '.apk'                //outputFileName  = "${cfg.applicationId}_${variant.mergedFlavor.versionName}_debug_${getTime()}.apk"                //打包路径               variant.packageApplication.outputDirectory=new File("./apk" + defaultConfig.versionName)                //variant.packageApplication.outputDirectory = new File(project.rootDir.absolutePath + "/apk" + defaultConfig.versionName)            }        }    }}

设置打包时间

def getTime() {    return new Date().format("yyyyMMddHHmm");}
def appName() {    return "App名称"}

APP名称:????

project.archivesBaseName

 

二.自动化签名配置

Android studio会生成的dubug包使用默认的签名,release包需要我们自行配置。我们可以进行配置,实现自动签名。

1.在项目的App目录下的build.gradle中,配置如下:

android {    signingConfigs {        release {            keyAlias 'myalias'            keyPassword 'password'            storeFile file('D:/mykeystore_release.jks')            storePassword 'password'        }        debug {            keyAlias 'myalias'            keyPassword 'password'            storeFile file('D:/mykeystore_debug.jks')            storePassword 'password'        }    }    buildTypes {        release {            signingConfig signingConfigs.release        }        debug {            signingConfig signingConfigs.debug        }    }}

2.编译方式:

1.双击Gradle中的assembleDebug或者assembleRelease就可以开始编译

Android 使用 Gradle 打包--签名配置_第1张图片

2.或者在Terminal命令行中输入gradlew assembleRelease或者gradlew assembleDebug,然后回车开始编译。

3.配置v1,v2

查看Android的DefaultSigningConfig会发现,默认的mV1SigningEnabled和mV2SigningEnabled为true,对应打包时选择V1和V2,我们也可以通过signingConfigs在自动化编译阶段实现V1和V2签名

android {    signingConfigs {        release {            keyAlias '******'            keyPassword '******'            storeFile file('../release.keystore')            storePassword '******'             v1SigningEnabled true            v2SigningEnabled true        }    }    }

../表示当前文件目录再往上一层级,release.keystore文件需要放在项目的根目录下,而不是App这个module根目录

4.隐藏签名信息

1.创建属性文件(如“keystore.properties”),可以在项目目录下创建一个属性文件用来存放钥匙的信息:

keystore.properties:

storeFile=../key.jksstorePassword=123keyAlias=keyaliaskeyPassword=123

2.build.gradle配置如下

def keystorePropertiesFile = file("keystore.properties")def keystoreProperties = new Properties()keystoreProperties.load(new FileInputStream(keystorePropertiesFile))android {    signingConfigs {        release {            keyAlias keystoreProperties['keyAlias']            keyPassword keystoreProperties['keyPassword']            storeFile file(keystoreProperties['storeFile'])            storePassword keystoreProperties['storePassword']        }    }}

5.查看结果

编译成功后可以在如下路径找到编译后的apk安装包

Android 使用 Gradle 打包--签名配置_第2张图片

如果自定义了输出路径到对应的文件夹下寻找。

 

 

https://blog.csdn.net/u012958716/article/details/54138601

https://www.jianshu.com/p/8dc154f0f89f

 

 

 

更多相关文章

  1. Android中打开文件选择软件打开(ACTION_VIEW)
  2. Android 建立文件夹、生成文件并写入文本文件内容
  3. 文件系统中的保留空间
  4. Android最全的资源文件(官方翻译)
  5. Android: 显示SD卡文件列表
  6. Android通过HTTP协议实现上传文件数据
  7. Android 将数据库文件保存至sdcard中

随机推荐

  1. What did Google change in the kernel?
  2. Android世界的15款开源的游戏开发引擎
  3. Android(安卓)soft (virtual) keyboard l
  4. ActivityManager: Starting: Intent { ac
  5. Android(安卓)DatePicker 使用示例
  6. android 上传Bitmap到服务器端
  7. 拍照或从图库选择
  8. Android(安卓)Studio3.0 Annotation proc
  9. 手机安全卫士开发系列(5)——自动更新
  10. setonClickListener()的解释