android - Flutter google play 说应用程序已在 Debug模式下登录

标签 android flutter google-play release

我正在尝试在 google play 上发布 Flutter 应用程序。
我按照本指南创建了 keystore https://flutter.dev/docs/deployment/android#signing-the-app

现在我正在尝试使用此命令构建我的发布应用程序

flutter build apk --release --split-per-abi 

(我什至添加了 --release 标志以使其明确)
之后我得到2个apk文件:
app-arm64-v8a-release.apk


app-armeabi-v7a-release.apk

甚至他们的名字也清楚地表明它们都是发布文件。
然后我尝试将它们中的任何一个上传到谷歌播放,我总是收到以下错误消息:

Download failed

The downloaded APK file or Android App Bundle was signed in debug mode. Sign the file or set in release mode. Learn more about signatures.



我的 gradle.build 文件包含以下内容:
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

当我构建它时没有问题。

我在这里想念什么?
我完全坚持这一点

最佳答案

解决了这个问题。原因是我之前使用过 flutter run --release 命令。所以 gradle 缓存了调试 keystore 并实际使用它来签署发布 apk。

解决方法很简单

在项目目录中打开一个新终端并键入:

cd android

当您在项目的 android 目录中时,键入此命令
./gradlew clean

特别注意 ./如果你只是输入 gradlew clean 它将不起作用,即使 gradlew 确实在“android”目录中

清理 gradle 缓存后,只需再次运行 build 命令
flutter build apk --split-per-abi

您将获得正确签名的发布 apk,这些 apk 将被 Google Play 接受

关于android - Flutter google play 说应用程序已在 Debug模式下登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979573/

相关文章:

android - 根据存储在 SQLite 数据库中的位置(纬度和经度)和时间计算速度

dart - Flutter函数参数通过引用传递

google-play - 服务器端 Google Play In App Billing 收据测试

android - 如何设置/获取/请求从 Android 到 iOS 的 MTU,反之亦然 BLE?

android - 在运行时设置字体,TextView

dart - ListView.builder 不工作

dart - 将填充添加到默认的 Flutter 应用程序

android - 发布具有相同包名的新应用

android - Google Play 商店无法打开 Beta alpha 版本的链接

android - 在操作栏顶部显示 View