使用旧版本构建 Flutter appbundle



我想将我的 Flutter 应用程序的第二个版本上传到 Google Play 的内部测试频道(我现在只是使用 Android 版本(。

我可以上传第一个版本1.0.0+1但是当尝试上传第二个版本时1.0.1+2Google Play管理中心拒绝了我的应用程序包,并显示错误消息

You need to use a different version code for your APK because you already have one with version code 1.

我已经尝试了顺序:

flutter clean删除生成和临时文件夹。

pubspec.yaml上的version行从1.0.0+1修改为1.0.1+2

flutter pub get重建颤振所需的文件。

flutter build appbundle构建捆绑包。

由于我已经能够构建和发布应用程序的第一个版本,因此我认为构建配置的其余部分是可以的。

大多数解决方案旨在清理项目,修改pubspec.yaml然后重建,但这似乎对我不起作用。

编辑:

尝试使用值flutterVersionName = '1.0.1'flutterVersionCode = '2'修改build.gradle文件,但我仍然收到版本代码为 1 的应用程序包。

Android 应用程序版本代码和版本名称在android/app/build.gradle中定义。查看此文件并检查是否包含这些行

...
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}      
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
...
defaultConfig {
applicationId "net.myapp"
minSdkVersion 18
targetSdkVersion 28
versionCode flutterVersionCode.toInteger() //<-this line defines versionCode
versionName flutterVersionName
...

如果一切正常,请查看android/local.properties文件。此文件在 Flutter 构建应用程序时更新。它应该有这些行,从你的pubspec.yaml数据生成:

flutter.versionName=1.1.1
flutter.versionCode=9

如果两个文件都正常,请运行flutter build apk以重新生成 local.properties 数据。

找到了一个足够好的解决方法,那就是不使用 Flutter sdk 而是使用 Android Studio 构建 appbundle。

为了实现这一点,请执行以下操作:

打开 Android Studio> 打开 android 项目(androidFlutter 项目中的文件夹(

然后按如下方式修改应用级别build.gradle

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "<YOUR_APP_ID>"
minSdkVersion 21
targetSdkVersion 28
versionCode 2     // Manually add your desired version code
versionName "1.0.1"      // Manually add your desired version name
//        versionCode flutterVersionCode.toInteger()
//        versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

然后转到构建>生成签名捆绑包/APK...以生成捆绑包或APK,就像构建本机应用程序一样(可在此处找到生成签名应用程序捆绑包的进一步说明(

请注意,这并不能完全解决问题,因为使用 Flutter sdk 仍然无法正确生成捆绑包。

接受的答案阻止了颤振管理版本。

更改版本后,应运行flutter pub upgrade命令。

最新更新