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 {

    ...

    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,简单省事。
在这里插入图片描述

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

注意:

  1. 文件名中不能出现/字符,否则会被分割成文件名。
  2. 文件名中不能包含一些特殊字符如冒号(中文英文冒号都不行),编译会报错。
android {
	...
applicationVariants.all { variant ->
        //release包才执行
        if (variant.name != "release") return
        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")
            }
        }
    }
}

Gradle 7.0+

API ‘variant.getPackageApplication()’ is obsolete and has been replaced with ‘variant.getPackageApplicationProvider()’.

//把getPackageApplication()改成getPackageApplicationProvider().get()即可.
// 自定义输出路径
variant.getPackageApplicationProvider().get().outputDirectory = new File(rootDir.absolutePath + "/app/apks")

参考

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值