Mac OS Flutter build appbundle 失败:密钥库格式无效
Mac OS Flutter build appbundle failed: Invalid keystore format
自一周以来,我一直在尝试从 flutter 应用程序创建 android 应用程序包,并且我从 Create an upload keystore 给定官方 flutter 网站
in Mac OS 我已经尝试在终端
中执行以下命令
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
它提示我输入我写的密钥库密码android
,然后重新输入新密码:android
在我填写的一系列问题和答案之后,比如你的名字和姓氏?,你的组织单位的名称是什么?,你的组织的名称是什么?,你的城市或地区的名称是什么?,你的州或省的名称是什么?,这个单位的两个字母的国家代码是什么?,最后询问信息是否正确我回答是,它在提示时制作了.jks文件
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
[Storing /Users/faizfareed/upload-keystore.jks]
之后我创建了一个名为 [project]/android/key.properties
的文件,其中包含对密钥库的引用以及文件中的以下信息
storePassword=android
keyPassword=android
keyAlias=upload
storeFile=/Users/faizfareed/upload-keystore.jks
我终于配置了 gradle [project]/android/app/build.gradle
文件。
在 android
块之前添加了来自属性文件的密钥库信息:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
已将 key.properties
文件加载到 keystoreProperties
对象中。
替换了 buildTypes
块:
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now,
// so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
签名配置信息:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
最后当我执行 flutter build appbundle
命令时,它给出了这样的错误
faizfareed@Faizs-MBP building_apk % flutter build appbundle
Building without sound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:signReleaseBundle'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Failed to read key upload from store "/Users/faizfareed/upload-keystore.jks": Invalid keystore format
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 7s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done 7.8s
Gradle task bundleRelease failed with exit code 1
供参考我还附上了终端图片
我也尝试过关注 solution,但对我来说没有任何效果
谁能帮我解决这个错误无效的密钥库格式
我也有同样的错误。
我从 https://docs.oracle.com/en/java/javase/15/install/installation-jdk-macos.html#GUID-2FE451B0-9572-4E38-A1A5-568B77B146DE 安装了 JDK
但没必要,因为 Android Studio 有它,所以我卸载了它。
我在终端中使用了下一个命令
/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
我推荐使用命令
flutter doctor -v
检查java路径'Java binary at:'
自一周以来,我一直在尝试从 flutter 应用程序创建 android 应用程序包,并且我从 Create an upload keystore 给定官方 flutter 网站
in Mac OS 我已经尝试在终端
中执行以下命令keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
它提示我输入我写的密钥库密码android
,然后重新输入新密码:android
在我填写的一系列问题和答案之后,比如你的名字和姓氏?,你的组织单位的名称是什么?,你的组织的名称是什么?,你的城市或地区的名称是什么?,你的州或省的名称是什么?,这个单位的两个字母的国家代码是什么?,最后询问信息是否正确我回答是,它在提示时制作了.jks文件
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
[Storing /Users/faizfareed/upload-keystore.jks]
之后我创建了一个名为 [project]/android/key.properties
的文件,其中包含对密钥库的引用以及文件中的以下信息
storePassword=android
keyPassword=android
keyAlias=upload
storeFile=/Users/faizfareed/upload-keystore.jks
我终于配置了 gradle [project]/android/app/build.gradle
文件。
在 android
块之前添加了来自属性文件的密钥库信息:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
已将 key.properties
文件加载到 keystoreProperties
对象中。
替换了 buildTypes
块:
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now,
// so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
签名配置信息:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
最后当我执行 flutter build appbundle
命令时,它给出了这样的错误
faizfareed@Faizs-MBP building_apk % flutter build appbundle
Building without sound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:signReleaseBundle'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Failed to read key upload from store "/Users/faizfareed/upload-keystore.jks": Invalid keystore format
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 7s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done 7.8s
Gradle task bundleRelease failed with exit code 1
供参考我还附上了终端图片
我也尝试过关注 solution,但对我来说没有任何效果
谁能帮我解决这个错误无效的密钥库格式
我也有同样的错误。 我从 https://docs.oracle.com/en/java/javase/15/install/installation-jdk-macos.html#GUID-2FE451B0-9572-4E38-A1A5-568B77B146DE 安装了 JDK 但没必要,因为 Android Studio 有它,所以我卸载了它。
我在终端中使用了下一个命令
/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
我推荐使用命令
flutter doctor -v
检查java路径'Java binary at:'