生成签名文件(jks)
keytool -genkey -v -keystore jason-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias jasonkey -storepass 1234
* jason-release-key.jks , 这个是生成jks的名字
* -validity 10000 , 中的10000,单位是天
* jasonkey 是别名
* 1234 , 是你的密码
姓名组织那些自己填, 生成后是
jason-release-key.jks
生成后会提示:
JKS 密钥库使用专用格式。建议使用keytool -importkeystore -srckeystore jason-release-key.jks -destkeystore jason-release-key.jks -deststoretype pkcs12
迁移到行业标准格式 PKCS12。
请执行
keytool -importkeystore -srckeystore jason-release-key.jks -destkeystore jason-release-key.jks -deststoretype pkcs12
- 执行结果:Warning:
已将 "jason-release-key.jks" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "jason-release-key.jks.old" 进行了备份。
- jason-release-key.jks.old 不用了, 用jason-release-key.jks
build 未签名的release apk
- 在android studio 左下角选择 : Build Variants , 选择 release
- android studio -> Build -> Build bundle(s) / APK(s) , build 完成后, 用到未签名的apk :
app-release-unsigned.apk
签名APK
- 将app-release-unsigned.apk拷贝到与生成的jason-release-key.jks同一目录下, 执行
jarsigner -verbose -keystore jason-release-key.jks -signedjar new-signed.apk app-release-unsigned.apk jasonkey
* jasonkey 是生成jks 的别名
* new-signed.apk 就是生成的apk 的名字
* app-release-unsigned.apk , 是你要签名apk 的名字
* 回车后输入密码, 就得到new-signed.apk了
* 签名完成后会提示没有时间戳,忽略即可, new-signed.apk会比原来未被签名的apk文件大一点
也可以加上密碼
jarsigner -verbose -keystore jason-release-key.jks -storepass {storepass} -keypass {keypass} -signedjar new-signed.apk app-release-unsigned.apk jasonkey
-storepass 後面是 storepass (當初創建jks 時填的)
-keypass 後面跟密碼 (當初創建jks 時填的)