在项目中接触到了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签名文件
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
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网友的帮助。