android-studio 签名文件使用

时间:2021-04-08 20:27:38

在项目中接触到了android-studio的系统文件签名,未免自己忘记了,就来占坑,这部分在今后应用发布时也需要管理。

让Android Studio集成系统签名,需要用到一个工具keytool-importkeypair,详见下文。

keytool-importkeypair

keytool-importkeypair – A shell script to import key/certificate pairs into an existing Java keystore

这个工具的作用是将系统签名的相关信息导入到已有的签名文件里。

工具的使用方法可以通过–help或README.textile来寻求帮助,或参考使用keytool工具 这篇文章。

相关文件platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh我的做法是在App根目录新建Signature文件夹专门存放签名相关文件。

步骤1、生成demo.jks签名文件

android-studio 签名文件使用android-studio 签名文件使用

2、编写签名脚本signature.sh,内容如下:

#!/bin/sh

# 转换系统签名命令
./keytool-importkeypair -k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo

# demo.jks : 签名文件
# 123456 : 签名文件密码
# platform.pk8、platform.x509.pem : 系统签名文件
# demo : 签名文件别名

为脚本文件添加可执行权限:

$ sudo chmod a+x signature.sh

执行脚本:

$ ./signature.sh

./signature.sh执行脚本动作一定要执行,执行后会提示是否存在.jks签名文件,默认为[no],如果像前述一样新建demo,则可以输入yes。执行成功系统会提示

Import command completed: 1 entries successfully improted, 0 entries failed or cancelled.

3、配置builde.gradle

在android区域下(与defaultConfig同级)添加配置:

signingConfigs {
release {
storeFile file("./signature/demo.jks")
storePassword '123456'
keyAlias 'demo'
keyPassword '123456'
}

debug {
storeFile file("./signature/demo.jks")
storePassword '123456'
keyAlias 'demo'
keyPassword '123456'
}
}

上述stroreFile file选项也可以从android-studio中的Projest Struture选中Signing选项下的Store File选项,选择默认签名文件存放位置。

这样debug或release apk就带有系统签名了。

如果想直接Run app就是release版且带系统签名的apk,还需修改:

1) 变体app

android-studio 签名文件使用

2) 修改buildTypes

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
}

这样直接Run app就是带系统签名的release版apk了。

以上部分内容转载http://blog.csdn.net/zhixuan322145/article/details/51277921,感谢CSDN网友的帮助。