MacOS下VSCode执行flutter build appbundle报release签名无keystore错误
Flutter构建Android包签名报错解决方案
首先可以忽略flutter_mailer相关的API废弃警告,这类警告不会导致构建失败,核心问题是Gradle没有正确读取到签名配置,导致app:validateSigningRelease校验失败,按以下步骤逐一排查即可:
- 路径大小写修正(Mac系统高频坑)
你在key.properties中配置的路径为storeFile=/Users/Administrator/upload-keystore.jks,Mac系统默认的用户目录名称为小写,首先打开终端执行命令验证文件是否存在:ls /Users/administrator/upload-keystore.jks
如果提示文件不存在,就将key.properties中的路径修改为实际正确的全小写路径,确保路径和本地文件存储位置完全一致。 - 检查key.properties存放位置
确认key.properties文件放在项目的android根目录下,和项目级的build.gradle文件同级,不要放在项目根目录、android/app子目录等其他位置,否则Gradle的读取逻辑会找不到配置文件,默认返回空值。 - 修复文件读取权限
给keystore和配置文件开启可读权限,避免Gradle无权限读取文件:
chmod 644 /Users/administrator/upload-keystore.jks chmod 644 [你的项目路径]/android/key.properties
- 硬编码测试验证配置有效性
如果以上步骤无效,可以暂时把签名配置硬编码到android/app/build.gradle中验证是否是配置读取逻辑的问题,将signingConfigs.release段替换为:
signingConfigs { release { keyAlias 'key' keyPassword 'xxxx1234' storeFile file('/Users/administrator/upload-keystore.jks') // 替换为实际正确路径 storePassword 'xxxx1234' } }
如果硬编码后构建成功,就说明你的key.properties文件存在格式问题(比如行尾有多余空格、隐藏字符),可以重新新建一个纯文本的key.properties文件写入配置即可。
- 清理缓存重新构建
配置修改完成后执行以下命令清理旧缓存再构建:
flutter clean flutter pub get cd android && ./gradlew clean && cd .. flutter build appbundle
另外你执行flutter build appbundle --debug生成的是Debug版本的包,只会生成bundle/debug目录,不会生成release目录,属于正常现象。
内容的提问来源于stack exchange,提问作者JeffLongBeach
相关产品推荐
相关产品推荐

