Android Gradle实现一键签名打包

手动打包签名

  1. Build—>Generate Singned Bundle or APK—>APK Next

  2. 选择你的密钥,填入key和两个密码,Next

  3. 选择Build Variants,签名版本(V1必选,V2可选),Finish

AS就会开始帮我们打包,打包成功后,右下角会有提示:

APK(s) generated successfully for module 'app' with 1 build variant: 
Build variant 'xiaomiRelease': locate or analyze the APK.

点击locate,就可以直接访问文件夹找到打包签名完毕后的APK。

自动打包签名

AS设置签名

可以如下图使用 AS设置签名,点击apply后自动在Gradle中生成代码。
也可以自己复制添加签名代码。
Android Gradle实现一键签名打包_第1张图片

android {

    ...

    signingConfigs {
        sing {
            storeFile file('your.jks')
            storePassword 'storePassword'
            keyAlias = 'keyAlias'
            keyPassword 'keyPassword'
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.sing
        }
        debug {
            signingConfig signingConfigs.sing
        }
    }

    ...

 }   

一键打包

如果我们的app配置了多渠道。我们可以:
Gradle—>app—>build—>assemble+渠道名—>双击Run
即可自动打包对于渠道的APK。
也可以如下图,一键Run打包所有渠道的APK,简单省事。
Android Gradle实现一键签名打包_第2张图片

自定义出输出路径,apk文件名

注意:

  1. 文件名中不能出现/字符,否则会被分割成文件名。
  2. 文件名中不能包含一些特殊字符如冒号(中文英文冒号都不行),编译会报错。
android {
	...
applicationVariants.all { variant ->
        variant.outputs.all() { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                //打包时间 yyyy-MM-dd HH:mm
                def formattedDate = new Date().format('MM-dd_HH.mm')
                // 自定义文件名
                outputFileName = "App-${variant.flavorName}-${variant.buildType.name}_v${defaultConfig.versionName}(${formattedDate}).apk"
                // 自定义输出路径
                variant.getPackageApplication().outputDirectory = new File(rootDir.absolutePath + "/app/apks")
            }
        }
    }
}

参考

Android Studio 配置多渠道一键打包,自动签名

你可能感兴趣的:(#,Android笔记)