求助:Flutter Release模式下获取SHA1遇Missing Keystore错误,求无需Android Studio的解决方法
不用Android Studio获取Flutter Release模式SHA1密钥的解决方法
别担心,不用Android Studio也能轻松搞定这个问题,我给你两种实用方案,都是自己踩过坑验证过的:
方案一:直接用keytool从已生成的keystore提取指纹
这是最直接的方法,既然你已经生成了release.keystore,直接用JDK自带的keytool命令就能读出SHA1:
- 打开终端/命令提示符,导航到你的
release.keystore所在的文件夹(比如如果它在Flutter项目的android/app目录下,就执行cd 你的项目路径/android/app) - 执行以下命令:
keytool -list -v -keystore release.keystore -alias AndroidReleaseKey - 输入你生成keystore时设置的密钥库密码,回车后就能看到包含SHA1、SHA256在内的所有证书指纹信息了,找到
SHA1那一行复制即可。
提示:如果keytool命令提示找不到,说明你的JDK环境变量没配置好,确保JDK的bin目录加到了系统PATH里,或者直接用JDK完整路径执行(比如
C:\Program Files\Java\jdk1.8.0_301\bin\keytool.exe)
方案二:配置Gradle解决Missing Keystore错误,再用gradlew获取
如果还是想用signingReport命令,那得先给Gradle指定keystore的位置,步骤如下:
- 找到Flutter项目的
android/gradle.properties文件,打开后添加以下配置(替换成你自己的密码和路径):RELEASE_STORE_FILE=../release.keystore # 如果keystore在app目录下就写release.keystore,根据实际路径调整 RELEASE_STORE_PASSWORD=你的密钥库密码 RELEASE_KEY_ALIAS=AndroidReleaseKey # 你生成keystore时设置的alias RELEASE_KEY_PASSWORD=你的密钥密码(如果和密钥库密码一样就填同一个) - 打开
android/app/build.gradle文件,找到android代码块里的signingConfigs部分,添加Release签名配置:signingConfigs { release { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD } } buildTypes { release { signingConfig signingConfigs.release // 保留你原来的其他配置,比如minifyEnabled之类的 } } - 回到终端,导航到项目的
android目录,执行命令:
这次就能正常输出所有构建变体的签名信息,找到./gradlew signingReport # Windows系统用gradlew.bat signingReportRelease对应的SHA1即可。
注意事项
- 一定要确保keystore的路径、alias、密码都和你生成时的一致,不然会报错
- 保存好你的
release.keystore和密码,后续发布新版本还要用到,丢了就麻烦了
内容的提问来源于stack exchange,提问作者Yash Sahu
相关产品推荐
相关产品推荐

