当前位置:   article > 正文

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

androidstudio生成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
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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

gradlew :testapp2:assembleRelease
#或者
gradlew :testapp2:build
#或者
gradlew :testapp2:assemble
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

别忘记一键三连哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/817172
推荐阅读
相关标签
  

闽ICP备14008679号