【Android】正式打包 Release 发布版本(创建秘钥,配置秘钥,打包签名)

在 Android 工程里,Debug 与 Release 是 Gradle 内置好的 Build Variant(构建变体),它们的主要区别体现在编译配置、调试能力、性能优化和安全性等方面。

Build Variant 是由 Build Type(debug / release / 你自定的 staging…)和 Product Flavor(如果有,例如 free / paid)组成的,默认工程没有任何 flavor,所以新建工程项目都只有 debug 和 release 两种变体。

一、Debug 与 Release 区别

1、用途

  • Debug 版本用于开发调试阶段。
  • Release 版本用于正式发布到应用商店(即“正式版本”)。

2、 签名配置

签名密钥是一个加密文件(通常为 .jks 或 .keystore 格式),包含私钥(用于签名)和公钥(用于验证)。

(1) Debug 版本(调试秘钥)

  • 使用 Android Studio 自动生成的调试密钥签名(debug.keystore),有效期 30 年,所有人通用。用于开发阶段临时签名,不可用于发布。

(2)Release 版本(发布秘钥)

  • 使用开发者自己提供并保管的正式密钥(xxx.jks 或 .keystore),用于应用商店发布的 APK/AAB 签名,必须严格保密。

3、构建配置差异(build.gradle.kt)

(1)Debug 版本

  • isDebuggable = true (默认)
    进程可被 jdwp/lldb attach,断点、Profiler 全部可用。默认为true,BuildConfig.DEBUG = true。
  • isMinifyEnabled = false(默认)
    不跑 R8/ProGuard,代码保持原样,编译快。
  • isShrinkResources = false (默认)
    不删除未用资源,包体大。

(2)Release 版本

  • isDebuggable = false
    进程拒绝调试,Play 商店会拒绝带 isDebuggable = true 的 APK。
  • isMinifyEnabled = true,并配置 proguardFiles
    开启 R8 压缩、混淆、优化,体积减小 20~50%,也增加逆向难度。
  • isShrinkResources = true
    把未用图片、字符串一并裁掉。

(3)build.gradle.kt 示例

android {
   
   
	......
	buildTypes {
   
   
        debug {
   
   
            isDebuggable = true
            isMinifyEnabled = false
            isShrinkResources = false
        }

        release {
   
   
            isDebuggable = false
            isMinifyEnabled = true
       
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值