Flutter构建Release APK失败:SigningConfig缺失storeFile属性
问题描述
执行flutter build apk构建Release APK失败,核心错误提示:
任务':app:packageRelease'执行失败。
执行com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable时发生失败
SigningConfig "release" 缺少必填属性 "storeFile"。
构建日志摘要:
启用严格空安全构建 字体资源"LineIcons.ttf"已被摇树优化,大小从384876字节缩减至960字节(缩减99.8%)。可通过构建时添加--no-tree-shake-icons标志禁用摇树优化。 字体资源"MaterialIcons-Regular.otf"已被摇树优化,大小从1645184字节缩减至6672字节(缩减99.6%)。可通过构建时添加--no-tree-shake-icons标志禁用摇树优化。 Gradle任务assembleRelease执行失败,退出码1
已尝试修改org.gradle.jvmargs,问题未解决。
解决方案
该错误是Release构建缺少签名配置导致,需按以下步骤完成签名配置:
- 生成签名密钥(无密钥时执行)
终端运行命令(替换括号内参数):
keytool -genkey -v -keystore <密钥存储路径> -alias <密钥别名> -keyalg RSA -keysize 2048 -validity 10000
按提示输入密钥库密码、密钥密码等信息并记录。
- 配置签名信息到gradle文件
打开项目下android/app/build.gradle文件:
- 在
android块内添加签名配置:
signingConfigs { release { storeFile file('<密钥存储路径>') storePassword '<密钥库密码>' keyAlias '<密钥别名>' keyPassword '<密钥密码>' } }
- 在
buildTypes的release块中引用签名配置:
buildTypes { release { signingConfig signingConfigs.release // 保留原有shrinkResources、minifyEnabled等配置 } }
- 重新构建APK
执行命令:
flutter build apk
进阶优化(敏感信息保护)
正式项目建议避免硬编码密钥信息,可通过gradle.properties存储:
在android/gradle.properties中添加:
MYAPP_RELEASE_STORE_FILE=../my-release-key.keystore MYAPP_RELEASE_STORE_PASSWORD=你的密钥库密码 MYAPP_RELEASE_KEY_ALIAS=你的密钥别名 MYAPP_RELEASE_KEY_PASSWORD=你的密钥密码
再在build.gradle中引用:
signingConfigs { release { storeFile file(project.property("MYAPP_RELEASE_STORE_FILE")) storePassword project.property("MYAPP_RELEASE_STORE_PASSWORD") keyAlias project.property("MYAPP_RELEASE_KEY_ALIAS") keyPassword project.property("MYAPP_RELEASE_KEY_PASSWORD") } }
内容的提问来源于stack exchange,提问作者Anusha
相关产品推荐
相关产品推荐

