使用旧版本构建Flutter Appbundle

时间:2019-10-15 03:09:43

标签: flutter google-play-console

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

我可以上传第一个版本1.0.0+1,但是当尝试上传第二个版本1.0.1+2时,Google Play控制台拒绝了我的附有错误消息的

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

我已经尝试过该顺序:

flutter clean删除构建和临时文件夹。

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

flutter pub get重建需要的文件。

flutter build appbundle来构建捆绑包。

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

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

编辑:

试图使用值build.gradleflutterVersionName = '1.0.1'来修改flutterVersionCode = '2'文件,但我仍然得到一个版本号为1的附件。

2 个答案:

答案 0 :(得分:0)

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数据。

答案 1 :(得分:0)

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

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

打开Android Studio>打开android项目(Flutter项目中的Get-ChildItem -Directory -Path './srcdir' | ForEach-Object { Copy-Item -Path $_.FullName -Destination './destdir' } 文件夹)

然后按如下所示修改您的应用级别android

build.gradle

然后转到 Build> Generate Signed Bundle / APK ... (生成>生成已签名的捆绑包/ APK ... ),就像您在构建本机应用程序一样(有关生成已签名应用程序捆绑包的更多说明,{ {3}}

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