小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
keytool 命令 生成签名密钥
生成一个签名密钥
==前提 已经安装好了 java环境==
配置环境变量 C:\Program Files\Java\jdkx.x.x_x\bin
执行命令
$ keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg
RSA -keysize 2048 -validity 10000
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: demo
您的组织单位名称是什么?
[Unknown]: nothing
您的组织名称是什么?
[Unknown]: nothing
您所在的城市或区域名称是什么?
[Unknown]: shijiazhuang
您所在的省/市/自治区名称是什么?
[Unknown]: hebei
该单位的双字母国家/地区代码是什么?
[Unknown]: CHN
CN=demo, OU=nothing, O=nothing, L=shijiazhuang, ST=hebei, C=CHN是否正确?
[否]: Y
正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
CN=demo, OU=nothing, O=nothing, L=shijiazhuang, ST=hebei, C=CHN
[正在存储my-release-key.keystore]
当前运行目录下 会生成一个 my-release-key.keystore 文件,有效期为 10000 天。--alias 参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名 后面 配置的 时候需要
设置 gradle 变量
1.把my-release-key.keystore文件放到你工程中的android/app文件夹下 2.修改 /android/gradle.properties(项目配置,只对所在项目有效,~/.gradle/gradle.properties(全局配置,对所有项目有效))
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
android/app/build.gradle 文件配置
android {
...
defaultConfig { ... }
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
生成发行 APK 包
// 进入android 目录
cd android
./gradlew assembleRelease
到这里 我这 就报错了
解决方法
android studio 打开构建(B)->Generate Signed Bundle or APK-> 选择 android app Bundle-> 下一步-> 按照生成密钥的 规则 依次补全信息
勾选上 Remember passwords 和 Export encrypted key for.. -> 下一步-> 选择 release点完成
再回到 android 目录 执行 ./gradlew assembleRelease 就可以了
在 .\android\app\build\outputs\apk\release 下 可以找到打包好的 app