You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:36:04