mac 下使用 android studio 自带的 apksigner 签名指南
为什么要给Android应用程序签名?
+ 拿到一个应用的安装包,能够知道作者是谁。
+ 当应用更新时,能够检测是不是作者本人提交的。
+ 应用中的部分文件遭到修改时,能够检测到是否为作者本人做出的修改 为了实现上述目的,Android就引入了签名这种比较成熟的方法。
可以使用jdk自带的签名工具jarsigner来签名,但是jarsigner只支持v1签名,为了满足各个版本的需要,只有v1签名是不够的,有些应用市场对于只有v1签名的应用不提供上线和更新支持。
android studio自带的apksigner支持v1、v2和v3签名。
虽然安装了android studio,但是直接在mac下使用apksigner命令签名会报错命令找不到 command not found: apksigner。
1,找到你的 build-tools版本
如果你不知道自己的build-tools版本是多少,打开一个android项目,在 build.gradle 中搜索 buildToolsVersion,就是你的 build-tools版本。
2,设置apksigner环境变量
打开文件 /Users/xxx/.bash_profile,在文件末尾添加如下内容
```
export AAPT_HOME=/Users/xxx/Library/Android/sdk/build-tools/<build-tools版本>
export PATH=$PATH:$AAPT_HOME
```
3,运行命令使配置生效
```
source /Users/xxx/.bash_profile
```
4,签名
apksigner签名的格式如下
```
apksigner sign --v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled true --ks <签名文件路径> --ks-key-alias <签名文件别名> --ks-pass pass:<签名文件密码> --in <待签名apk路径> --out <签名后输出的apk路径>
```
说明:
+ “--v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled” 根据你的需要是否使用v1/v2/v3签名
+ “--ks-key-alias <签名文件别名>” 不是必须的
我的笔记