任务“:app:packageRelease”执行失败。
执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.ide.common.signing.KeytoolException 时发生故障:无法从存储“/Users/husseinawaesha/key.jks”读取密钥密钥:密钥库格式无效
Play Console 帮助页面中的此命令行语句将生成一个上传密钥库,您只需替换您自己的别名并提供 keytool 的路径...
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
Run Code Online (Sandbox Code Playgroud)
但是,虽然它确实要求提供存储密码,但它不会要求提供密钥密码。如果您像我一样是新手,您可能不会注意到,稍后当您必须输入密钥密码时,您可能会发现自己在笔记中乱七八糟地试图找到您写下来的地方。如果您输入类似keypassword 的内容作为猜测,它将以Invalid keystore format进行响应。
最好使用 Android Studio 进程生成 Upload Keystore,而不是此命令行语句。
请通过此代码创建密钥库
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Run Code Online (Sandbox Code Playgroud)
从应用程序引用密钥库
创建一个名为 appdir/android/key.properties 的文件,其中包含对密钥库的引用:
storePassword=password from previous step
keyPassword=password from previous step
keyAlias=key
storeFile=location of the key store file, e.g.
/Users/username/key.jks
Run Code Online (Sandbox Code Playgroud)
将其添加到应用程序级别梯度上
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new
FileInputStream(keystorePropertiesFile))
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29171 次 |
| 最近记录: |