Flutter google 播放说应用已在调试模式下签名

Flutter google play says app was signed in debug mode

我正在尝试在 google 播放时发布 Flutter 应用程序。 我已经按照本指南创建了密钥库 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

连他们的名字都清楚地表明他们都是发布文件。 然后我尝试将它们中的任何一个上传到 google 播放,但我总是收到此错误消息:

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 运行 --release 命令。所以 gradle 已经缓存调试密钥库并实际使用它来签署发布 apk。

解决方法很简单

在您的项目目录中打开一个新终端并输入:

cd android

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

./gradlew clean

特别注意 ./ 如果你简单地输入 gradlew clean 它将不起作用,即使 gradlew 确实在 "android" 目录中

清理完gradle缓存后,只需再次运行构建命令

flutter build apk --split-per-abi

您将获得 Google Play

接受的正确签名的发布 apk