【问题标题】:Google Play error when uploading Flutter app debuggable上传可调试的 Flutter 应用程序时出现 Google Play 错误
【发布时间】:2019-01-12 07:14:02
【问题描述】:

我已经使用 Google Play 应用签名、Flutter 和 VS Code 有一段时间了,但从昨天开始,我正在处理的每个 Flutter 项目的每个发布版本都不断遇到错误并报告我正在尝试上传调试版本。

“您上传的 APK 或 Android App Bundle 已在调试中登录 模式。您需要在发布模式下签署您的 APK 或 Android App Bundle"

即使是新应用也会遇到同样的问题

我已经清理了构建文件夹,我使用了 --release 标志,这两个选项都不起作用。

我想尝试的一件事是手动编译应用程序,手动签名然后上传,但不知道如何做到这一点。

有什么建议吗?扯掉头发,因为我想不出最近有什么变化会影响到这一点。

flutter 医生输出 - 唯一奇怪的是缺少 VS Code 颤振扩展 - 它不是:-/

✓] Flutter(频道测试版,v0.5.1,Mac OS X 10.13.6 17G65,语言环境 zh-CN) • Flutter 0.5.1 版,位于 /Users/kenwen/Dev Tools/flutter • 框架修订c7ea3ca377(10周前),2018-05-29 21:07:33 +0200 • 引擎修订版 1ed25ca7b7 • Dart 版本 2.0.0-dev.58.0.flutter-f981f09760

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 28.0.1) • Android SDK 位于 /Users/kenwen/Library/Android/sdk • Android NDK 位置未配置(可选;对原生分析支持有用) • 平台 android-28,构建工具 28.0.1 • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_152-release-1024-b01) • 接受所有 Android 许可证。

[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 9.4.1) • Xcode 位于 /Applications/Xcode.app/Contents/Developer • Xcode 9.4.1,内部版本 9F2000 • ios 部署 1.9.2 • CocoaPods 1.5.2 版

[✓] Android Studio(版本 3.1) • Android Studio 位于 /Applications/Android Studio.app/Contents • Flutter 插件版本 27.0.1 • Dart 插件版本 173.4700 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_152-release-1024-b01)

[!] VS 代码(版本 1.25.1) • /Applications/Visual Studio Code.app/Contents 中的 VS 代码 • 未安装 Flutter 扩展;从安装 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[!] 连接的设备 !没有可用的设备

!医生发现了 2 类问题。

build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location 
with flutter.sdk in the local.properties file.")
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 27

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID 
(https://developer.android.com/studio/build/application-id.html).
        applicationId "uk.co.kenliu.meanfitfoxes"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 21
        versionName "1.7.9"
        testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run -- 
   release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }

apply plugin: 'com.google.gms.google-services'

【问题讨论】:

  • 你能分享你的 app/build.gradle 文件吗?
  • 完成,刚刚添加。 AFAIK 没有对任何东西进行任何更改,我大约一天前发现了这一点,它影响了我正在从事的每一个 Flutter 项目,甚至是一个从头开始的新项目

标签: android flutter google-play-console


【解决方案1】:

您必须为发布模式创建签名配置,在您当前的文件中,您正在使用来自调试的签名配置。

 buildTypes {
    release {
        signingConfig signingConfigs.debug   //for this reason google doesn't allow you to upload the apk
    }
}

在你的 gradle 文件中创建一个签名配置:

        android {
            ...
            signingConfigs {
                release {
                    storeFile file("release.keystore")
                    storePassword "******"
                    keyAlias "******"
                    keyPassword "******"
                }
            }
            buildTypes {
                release {
                    signingConfig signingConfigs.release
                }
            }
        }

【讨论】:

  • 是的,只需再次仔细阅读文档并抓住它。我只是好奇为什么我能够在今天之前签署和发布发布版本。将我标记为困惑
  • 注意(来自flutter docs):您可能需要在更改gradle文件后运行flutter clean。这可以防止缓存的构建影响签名过程。
【解决方案2】:

你也需要改变

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
       signingConfig signingConfigs.debug
    }
}

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.release
    }
}

在 android/app/build.gradle 文件中

【讨论】:

    【解决方案3】:

    问题标记为红色。您已经复制了第一部分,即 signedConfigs。但没有将“调试”更改为“发布”。 NASA 透露,当您真的很匆忙并且无法在文档中看到一些微小的细节并且需要尽快构建和发布项目时,就会发生这种情况。我就是这样的。

    来自文档页面的屏幕截图,https://flutter.dev/docs/deployment/android

    【讨论】:

      【解决方案4】:

      android/app/build.gradle 中,将signingConfig signingConfigs.debug 更改为signingConfig signingConfigs.release,您可以在buildTypes 下找到它

      【讨论】:

        【解决方案5】:

        您必须生成上传密钥和密钥库。

        在菜单栏中,点击Build > Generate Signed Bundle/APK

        在 Generate Signed Bundle or APK 对话框中,选择 Android App BundleAPK 并点击 Next。

        在密钥存储路径字段下方,单击新建。

        填写必填字段:路径、密码、密钥、密码、有效期、证书详细信息(名称、组织单位等)

        点击确定。

        要构建,请转到菜单 > 构建 > 生成签名包/APK

        选择发布模式,不要忘记检查 V1 和 V2

        以上资料摘自Android Developer User Guide

        【讨论】:

          【解决方案6】:

          文件路径:android/app/build.gradle

          搜索 signingConfig signingConfigs.debug 并替换为 signingConfig signingConfigs.release

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-08-20
            • 1970-01-01
            • 2016-02-15
            • 1970-01-01
            • 2020-07-13
            • 1970-01-01
            • 2020-03-26
            相关资源
            最近更新 更多