1. key 的目录问题
(1) 普通正常路径就是这个, 如果有定制, 就需要到定制目录下
build/target/product/security
定制的目录一般会在
(2) build/target/product/security/xxx/xxx
配置的路径一般在 编译文件 xx.mk 中,
PRODUCT_DEFAULT_DEV_CERTIFICATE := \
-----------------------------------------
2. 执行生成签名文件 (一定要确定好签名的路径)
(1) 借助工具keytool-importkeypair 生成文件
https://github.com/chear/keytool-importkeypair
./keytool-importkeypair -k test.jks -p password 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias test
最终会生成 test.jks
-k test.jks: test表示最终生成的jks的名字,可以自定义
password 123456: 123456输入当前jks的密码,可以自定义。
alias test: test表示别名,可以自定义,建议和上面的jks一致。
(2)
1、编译android源码。
2、cd build/target/product/security/
3、执行 openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
生成platform.pem文件
4、执行 openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:123456 -name test
生成platform.p12文件,其中 "test" 为alias名(app添加签名要用到),"123456" 为密码。
5、执行 keytool -importkeystore -deststorepass test -destkeystore platform.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass test
生成platform.jks (app打签名最终用到的文件),
-deststorepass "123456" 设置的是这个签名的密码,
-src* 的其他参数都是从前面两个指令中生成的。
6、生成platform.jks
3. 应用到Android Studio
在src统计目录创建storefile文件夹,然后将test.jks放进去。
在build.gradle里面创建如下配置:
signingConfigs {
testkey {
keyAlias'test'
keyPassword '123456'
storeFile file('keyfile/test.jks')
storePassword '123456'
}
}
buildTypes {
debug {
signingConfig signingConfigs.testkey
}
release {
signingConfig signingConfigs.testkey
}