这是一份非常详细且适合新手的 Android Studio 签名打包(生成 APK/AAB)教程。
我们将分步进行,从创建签名密钥到最终生成安装包。
准备工作
在开始之前,请确保你的项目能够正常编译和运行。
第一部分:生成签名密钥(Keystore)
这个密钥是证明应用身份的唯一凭证,务必妥善保管。如果丢失,你将无法更新你的应用。
-
在 Android Studio 中,点击顶部菜单栏的 Build。
-
选择 Generate Signed Bundle / APK。
-
在弹出的窗口中,你会看到两个选项:
- Android App Bundle (.aab):推荐用于上传到 Google Play。格式更小,包含所有设备配置信息,由 Google Play 商店动态生成适合用户设备的 APK。
- APK (.apk):通用的安卓安装包,可以直接安装在设备上,用于其他应用市场或直接分发。
我们先选择 APK 来进行演示,AAB 的流程几乎完全相同。点击 Next。
-
现在你需要指定一个密钥存储路径。如果你还没有密钥,点击 Create new...。
-
会弹出"New Key Store"窗口,你需要填写以下信息:
- Key store path :密钥存储的位置和文件名。建议放在项目根目录下,并以
.jks结尾(例如my-release-key.jks)。点击右边的文件夹图标选择路径。 - Password :为密钥库设置一个强密码。记住它!
- Confirm:确认密码。
- Alias :密钥的别名,可以理解为这个密钥的名字(例如
my-key-alias)。 - Password (for Key) :为这个别名密钥设置一个密码。可以和上面的库密码相同,也可以不同。 同样要记住。
- Confirm:确认密钥密码。
- Validity (years):有效期(年)。Google 要求至少 25 年,建议设置为 25 年以上。
- Certificate :证书信息。至少需要填写 First and Last Name(你的姓名或公司名),其他信息可选。
填写完成后,点击 OK。
- Key store path :密钥存储的位置和文件名。建议放在项目根目录下,并以
-
系统会自动创建
.jks文件,并回到上一个窗口,此时路径和别名等信息已经自动填充。再次输入密码。
第二部分:配置构建类型和签名
-
在填充好密钥信息的窗口下方,你需要选择 Build Variants (构建变体)。选择 release,因为我们要打正式发布包。
-
勾选 V2 (Full APK Signature)。这是 Android 7.0 引入的更安全、更快速的签名方案。建议始终勾选。
-
点击 Next。
第三部分:选择构建版本和最终生成
-
现在你需要选择 Destination Folder,即 APK 文件的输出目录。建议选择一个你容易找到的文件夹,例如桌面的一个新建文件夹。
-
在 Build Variants 这里再次确认你选择的是 release。
-
点击 Finish。
-
Android Studio 会开始编译和打包。你可以在底部的 Build 窗口看到进度。
-
完成后,会有一个提示框弹出,告诉你构建成功。你可以点击链接直接定位到生成的 APK 文件。

恭喜!你已经成功生成了一个签名的 Release APK 文件,可以将其安装到设备或分发到各大应用市场了。
进阶:更安全的方式 - 使用环境变量(推荐)
将密码直接写在 IDE 中并不安全,特别是团队协作时。最佳实践是使用环境变量。
-
在项目的根目录 下创建一个名为
keystore.properties的文件(此文件已被.gitignore排除,不会上传到代码库)。 -
在该文件中填入你的密钥信息:
propertiesstorePassword=your_store_password keyPassword=your_key_password keyAlias=your_key_alias storeFile=your_store_file_pathstoreFile是.jks文件相对于项目根目录的路径,例如../keys/my-release-key.jks。
-
在 Module 级 的
build.gradle.kts(Kotlin DSL) 或build.gradle(Groovy DSL) 文件顶部,在android {}块之前,添加以下代码来读取这个属性文件:Kotlin DSL (
build.gradle.kts):kotlin// 加载 keystore.properties 文件 val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = java.util.Properties() keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile)) android { ... }Groovy DSL (
build.gradle):groovy// 加载 keystore.properties 文件 def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... } -
在
android {}块内,配置signingConfigs和buildTypes:Kotlin DSL (
build.gradle.kts):kotlinandroid { signingConfigs { create("release") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } buildTypes { getByName("release") { signingConfig = signingConfigs.getByName("release") // 其他 release 配置,如混淆 isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } }Groovy DSL (
build.gradle):groovyandroid { signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release // 其他 release 配置,如混淆 minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
配置完成后:
以后你只需要点击 Android Studio 右侧 Gradle 面板 -> 你的项目 -> app -> Tasks -> build -> assembleRelease ,或者直接使用 ./gradlew assembleRelease 命令,就可以一键生成带签名的 Release APK,无需再通过图形界面输入密码。

生成的 APK 文件路径通常在:app/build/outputs/apk/release/。
关于 Android App Bundle (.aAB)
生成 AAB 的流程与 APK 完全一样 。唯一的不同是在第一步时选择 Android App Bundle。
AAB 文件不能直接安装到手机 ,它只用于上传到 Google Play Console。Google Play 会利用这个 Bundle 为不同设备生成最优化的 APK。
重要提醒
- 备份密钥 :将你的
.jks文件和keystore.properties(如果你用了)备份到绝对安全的地方(如加密的 U 盘、安全的云存储)。丢失意味着你无法对应用进行任何更新。 - 不要泄露密码:切勿将密钥和密码提交到代码仓库(如 GitHub)。
- 使用强密码:为密钥库和密钥使用复杂且唯一的密码。
希望这份教程对你有帮助!