keystore和Keytool是什么
Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。 在keystore里,包含两种数据:
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
可信任的证书实体(trusted certificate entries)——只包含公钥
Keystore可以简单理解为一个存放应用签名的文件。
查看是否安装jdk,要用到的keytool是jdk里面的工具
/usr/libexec/java_home -V
image.png
如果没安装,去这里下载,链接:http://www.oracle.com/technetwork/java/javase/downloads/
生成keystore文件
keytool -genkey -v -keystore mykey.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000
alias是别名,
按照提示填好资料,记住密码就行。
把这个keystore文件复制到 项目/android/app下面
配置项目key注册
到项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码(密码就是我们刚才输入的密码)
storePassword=111111
keyPassword=111111
keyAlias=mykey
storeFile=mykey.keystore
进入项目目录的/android/app/build.gradle文件,在android {这一行前面,加入如下代码:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
把如下代码进行替换
buildTypes {
release {
signingConfig signingConfigs.debug
}
}
替换成的代码:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
}
}
最后执行命令
flutter build apk