Flutter打包Release版本遭遇Cannot Recover Key错误求助
解决Flutter Release打包「Cannot Recover Key」错误的方案
针对你遇到的问题,结合你的场景(VS Code + Flutter + Gradle,首次打包AAB,已验证密码可查看Alias),可以按以下步骤排查解决:
检查密码的特殊字符处理
如果你的密码包含!@#$%^&*()等特殊字符,需要在key.properties中做转义处理:- 比如密码中的
$要写成\$ - 或者将整个密码用双引号包裹,例如
storePassword="your#password"
- 比如密码中的
验证Keystore文件完整性
用keytool命令详细检查Keystore是否正常:keytool -list -v -keystore D:\flutter_projects\first_project\rock_paper_scissors_2\android\app\upload-keystore.jks输入密码后,确认能正常显示密钥的别名、算法、有效期等完整信息。如果这里报错,说明Keystore文件损坏,需要重新生成。
核对build.gradle签名配置
确保android/app/build.gradle中正确读取了key.properties的配置,重点检查:keyAlias是否与实际密钥别名完全一致(大小写敏感)storeFile路径是否通过file()方法正确解析,例如:storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null- 签名配置是否正确关联到release buildType:
buildTypes { release { signingConfig signingConfigs.release // 其他配置 } }
清理缓存后重新打包
执行以下命令清除缓存,避免旧配置干扰:flutter clean手动删除
android/.gradle目录,然后重新执行:flutter build appbundle排查字符编码问题
如果密码包含非ASCII字符(如中文、特殊符号),可能因系统编码与Gradle编码不一致导致读取失败。尝试将密码改为纯英文数字的简单组合,重新生成Keystore后再测试打包。确认Keystore生成命令正确性
检查生成Keystore时的命令是否符合要求,正确的生成命令应为:keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload确保使用了
RSA算法,密钥大小为2048及以上,有效期设置合理。
内容的提问来源于stack exchange,提问作者Alex Cunha
相关产品推荐
相关产品推荐

