android studio 签名打包教程
这是一份非常详细且适合新手的 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排除,不会上传到代码库)。
- 
在该文件中填入你的密钥信息: storePassword=your_store_password keyPassword=your_key_password keyAlias=your_key_alias storeFile=your_store_file_path- storeFile是- .jks文件相对于项目根目录的路径,例如- ../keys/my-release-key.jks。
 
- 
在 Module 级的 build.gradle.kts(Kotlin DSL) 或build.gradle(Groovy DSL) 文件顶部,在android {}块之前,添加以下代码来读取这个属性文件:Kotlin DSL ( build.gradle.kts):// 加载 keystore.properties 文件 val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = java.util.Properties() keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile))android {... }Groovy DSL ( build.gradle):// 加载 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):android {signingConfigs {create("release") {keyAlias = keystoreProperties["keyAlias"] as StringkeyPassword = keystoreProperties["keyPassword"] as StringstoreFile = file(keystoreProperties["storeFile"] as String)storePassword = keystoreProperties["storePassword"] as String}}buildTypes {getByName("release") {signingConfig = signingConfigs.getByName("release")// 其他 release 配置,如混淆isMinifyEnabled = trueproguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),"proguard-rules.pro")}} }Groovy DSL ( build.gradle):android {signingConfigs {release {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}}buildTypes {release {signingConfig signingConfigs.release// 其他 release 配置,如混淆minifyEnabled trueproguardFiles 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)。
- 使用强密码:为密钥库和密钥使用复杂且唯一的密码。
希望这份教程对你有帮助!
