【Android Gradle系列】如何生成正式签名的APK文件【强推荐】

在本篇文章您将了解到两种生成正式签名的APK文件,当然还会了解到gradle buildgradle assemble的区别。

  • 通过 Android Studio 生成
  • 使用 Gradle 生成

前言

首先需要了解的是并不是所有的APK文件都能成功安装在手机上,能够安装在Android手机上的应用都是带有签名的。可能有小伙伴有疑惑了:为什么通过Android Studio运行生成的应用程序好像没有进行过签名啊?那是因为,Android Studio 使用了一个默认的 keystore文件帮我们自动进行了签名,可以在 Android Studio 中看到:
Gradle 面板——Tasks——android——signingReport,双击 signingReport,在控制台可以看到keystore 信息。
在这里插入图片描述
这就说明我们通过 Android Studio 运行的程序使用的都是这个 debug.keystore 文件来进行签名。
如果要想上架到应用商店,需要生成正式签名的 APK,那么问题来了,如何生成正式签名的APK 呢?本文将分享两种方法:

使用Android Studio生成正式签名的APK文件

点击 Android Studio 导航栏上的 Build——Generate signed APK ——选择APK——填写如下内容。如果没有 jks 文件的话,点击 Create new 即可生成新的。
在这里插入图片描述
其中 Validity(years)代表的是有效时长。具体信息可以添加如下内容
在这里插入图片描述
配置好信息之后,点击下一步选择release即可。
在这里插入图片描述
当点击Create后,右下角会有一个提示框:APK(s) generated successfully。当我们运行demo生成release版本时,该demo就是一个带有正式签名的APK文件。

使用Gradle生成正式签名的APK文件

在 testapp2 项目下的 build.gradle 文件中添加signingconfigs闭包,并在release闭包中使用。signingconfigs闭包中添加了一个config闭包,其中配置了keystore文件的各种信息,其中,storeFile 用于指定keystore文件的位置(文件必须已存在);storePassword用于指定密码,keyAlias用于指定别名,keyPassword用于指定别名密码。

android {
    namespace 'com.example.testapp2'
    compileSdk 34
    defaultConfig {
       # 此处省略
    }
    signingConfigs {
        config {
            storeFile file('/Users/zeng/zeng.jks')
            storePassword '123456'
            keyAlias 'Zeng'
            keyPassword '123456'
        }
    }

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

因为我们在 buildTypes下面的 release 闭包中应用了添加的签名配置,这样当生成正式版APK文件的时候就会自动使用配置的签名信息来进行签名。赶紧生成一个带有签名的 APK 试试吧。运行下面的命令生成 apk。

gradlew :testapp2:assembleRelease
#或者
gradlew :testapp2:build
#或者
gradlew :testapp2:assemble

可能小伙伴又有疑问了?gradlew buildgradlew assemble有什么区别。
相同点:
两者在执行命令后,都会生成debug和release包。
不同点:

  • gradlew build :是一个通用的构建命令,将执行项目的整体构建过程。会编译源代码,运行单元测试,处理器资源文件,最终生成可运行的应用程序包。
  • gradlew assemble: 用于执行构建过程的部分步骤,主要是打包生成可执行文件(如APK)。与 gradlew build 不同,gradlew assemble只执行构建过程的部分流程,跳过了编译源代码和运行单元测试等步骤。它可以指定特定的构建变体,例如 gradlew assembleDebug 或 gradlew assembleRelease ,来单独构建指定的变体而非构建所有变体。

别忘记一键三连哦

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小曾同学.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值