APK在对外发布到应用市场时,需要上传带密钥签名的release版apk才行。下面就来介绍一下打包签名APK的两种方法。
1. 创建签名文件
Eclipse的签名文件是以.ketstore
为后缀的文件;Android Studio是以.jks
为后缀的文件。
1)在 Build 菜单中选择 Generate Signed Bundle / APK...;

2)选择 APK,点击 Next 下一步;
Android App Bundle:
用于通过 Google Play 发布的应用,需要升级到AS 3.2 以上版本才支持App Bundle格式;
APK:
用于创建可部署到设备上的签名APK;

3)点击 Create new... 创建密钥库;

4)点击 Key store path 创建密钥库文件地址;

5)选择密钥库文件路径,填写密钥库名称,点击 OK 确定;

6)填写完成创建密钥库相关信息,点击 OK 创建完成。
Key store path
:密钥库文件的地址;
Password
:密钥库密码; Confirm
:确认密钥库密码;
Key:
Alias
:密钥别称;
Password
:密钥密码;Confirm
:确认密钥密码;
Validity(years)
:密钥有效期;
Certificate:
First and Last Name
:密钥颁发者姓名;
Organizational Unit
:密钥颁发组织单位;
Organization
:密钥颁发组织;
City or Locality
:所在城市;
State or Province
:所在州省;
Country Code
:国家编码;

2. 生成APK文件
- 工具签名打包
1)在 Build 菜单中选择 Generate Signed Bundle / APK...;

2)选择 APK,点击 Next 下一步;
Android App Bundle:
用于通过 Google Play 发布的应用,需要升级到AS 3.2 以上版本才支持App Bundle格式;
APK:
用于创建可部署到设备上的签名APK;

3)点击 Choose existing... 选择密钥库文件位置,填写正确的钥匙库密码和密钥密码,点击 Next 下一步;
Key store path
:密钥库文件路径;
Key store Password
:密钥库密码;
Key Alias
:密钥别称;
Key Password
:密钥密码;

4)选择签名 APK输出位置,以及 APK签名版本类型,勾选 V1(Jar Signature) 和 V2(Full APK Signature),点击 Finish 等待打包签名完成;
debug
:是测试版,包含调试和日志信息,没有进行优化加密,适合程序调试使用;
release
:是发布版,对外发布供用户使用,进行了优化加密处理;

V1 和 V2 两者区别:
-
V1(Jar Signature):
仅验证未解压的文件内容,这样APK 签署后可进行许多修改 ,可以移动甚至重新压缩文件; -
V2(Full APK Signature):
验证压缩文件的所有字节,而不是单个 ZIP 条目。在签名后无法再更改。所以现在在编译过程中,我们将压缩、调整和签署合并成一步完成。
V1 和 V2 使用总结:
- 打包签名时只勾选V1签名并不会影响什么,但是在7.0及以上不会使用更安全的验证方式;
- 只勾选V2签名7.0以下安装会直接显示未安装,7.0及以上则使用V2的方式验证;
- 同时勾选V1和V2则所有机型都没问题。
5)打包完成后,会在我们设置的输出路径下看到打包签名后的apk包,.../release/app-release.apk
和output.json
。
- Gradle签名打包
1)打包签名配置:
详细配置方法请移驾 —— 《Android Studio打包签名配置方法》
2)执行打包命令:
方法一:
打开右侧Gradle
,找到 Project -> Tasks -> build -> assemble 双击运行,开始编译打包签名;
assemble
,同时生成debug和release模式的apk包;
assembleDebug
,生成debug模式的apk包;
assembleRelease
,生成release模式的apk包

方法二:
在Terminal窗口执行打包命令;
- release打包的命令:
gradlew assembleRelease
- debug打包的命令:
gradlew assembleDebug
- release 和 debug打包的命令:
gradlew assemble
3)打包完成,在项目下app/build/outputs/apk/
查看debug
或者release
安装包。

网友评论