Flutter:升级Play商店的版本代码

时间:2018-12-01 12:03:37

标签: android flutter release

我已经在Play商店中颤抖地发布了一个应用程序,现在我要上传该应用程序的新版本。我正在尝试使用以下方式更改版本代码:

  

flutter build apk --build-name = 1.0.2 --build-number = 3

或像这样更改local.properties

setNum

但是每次我在Playstore上遇到错误

  

您必须为APK或Android应用程序捆绑包使用其他版本代码,因为代码1已分配给另一个APK或Android应用程序捆绑包。

19 个答案:

答案 0 :(得分:12)

想出了这一点。 文档不直接

在您的pubspec.yaml中更改版本

version: 1.0.2+2

其中+后面的内容是我认为的versionName

答案 1 :(得分:6)

该应用程序的默认版本号是1.0.0。要对其进行更新,请导航至pubspec.yaml文件并更新以下行:

version: 1.0.0+1

只需将该版本更改为(根据您的需要)

version: 1.0.1+2

版本号是由点号隔开的三个数字,例如上例中的1.0.0,后跟可选的内部版本号,例如上例中的1,并用+隔开。

在Flutter的版本中,可以分别指定--build-name和--build-number来覆盖版本和内部版本号。

在Android中,内部版本号用作versionName,而内部版本号用作versionCode。有关更多信息,请参见Version your app

pubspec file中更新版本号后,从项目顶部运行flutter pub get,或使用IDE中的Pub get按钮。这样会更新versionName文件中的versionCodelocal.properties,随后在重建Flutter应用程序时会在build.gradle文件中对其进行更新。

答案 2 :(得分:6)

更新应用的版本号 该应用程序的默认版本号是1.0.0。要对其进行更新,请导航到pubspec.yaml文件并更新以下行:

版本:1.0.0 + 1

版本号是由点号隔开的三个数字,例如上例中的1.0.0,后跟可选的内部版本号,例如上例中的1,并用+隔开。

在Flutter的版本中,可以分别指定--build-name和--build-number来覆盖版本和内部版本号。

在Android中,内部版本号用作versionName,而内部版本号用作versionCode。有关更多信息,请参阅Android文档中的“对应用程序进行版本控制”。

答案 3 :(得分:3)

对于Android

“ X.Y.Z + n”,此处“ x.y.z”代表版本名称,而“ n”代表版本号。 进行以下更改-

  1. pubspec.yaml中更改您的版本号。
  2. 通过运行local.properties命令来更新您的flutter pub get
  3. 现在通过运行flutter build apkflutter build appbundle命令来构建apk或应用捆绑包。

答案 4 :(得分:3)

如果您已经更改了 versionCode,可能是因为 Play 管理中心已接受您的构建。

不要点击上传,而是点击从库中选择并选择已经发送的构建。

enter image description here

答案 5 :(得分:2)

解决方案:

在pubspec.yaml内部添加此内容(可能在描述后,与描述相同的缩进,名称等...):

version: 2.0.0+2

然后将软件包放入flutter本地目录中(请不要忘记这样做)

说明:

加号之前的所有内容都是版本名称,之后是版本代码。所以这里的版本代码是2,名称是2.0.0。每当您对flutter应用程序进行更新时,请确保强制更改版本代码!

其他信息:

每当构建android应用时,android / app /中的build.gradle都会查找版本代码和名称。这通常位于local.properties中,每次更改flutter pubspec.yaml都会更改该属性。

答案 6 :(得分:1)

文档说,构建参数应该覆盖pubspec.yml

Flutter的版本和内部版本号可能都被覆盖 通过分别指定--build-name和--build-number进行构建。

https://flutter.dev/docs/deployment/android#updating-the-apps-version-number

答案 7 :(得分:1)

更新 com.Vaadin=FINER 中的 version:A.B.C+X

对于Android:

pubspec.yaml代表A.B.C,例如versionName

1.0.0X之后的数字)表示+,例如versionCode12等。

在更新3文件中的flutter packages get后运行version时,pubspec中的versionNameversionCode被更新后来在您使用local.propertiesbuild.gradle (app)构建flutter项目时在flutter build中得到了帮助,这最终负责地为apk设置了flutter runversionName

对于iOS:

versionCode代表A.B.C,例如CFBundleShortVersionString

1.0.0X之后的数字)表示+,例如CFBundleVersion12等。

答案 8 :(得分:1)

检查

android{
//....
  defaultConfig {
  //....
  version code:2
  }
}

在android> app> Build.gradle从项目的根文件夹中

答案 9 :(得分:1)

我遇到了同样的问题,我通过重新启动Android Studio来解决了这个问题。

答案 10 :(得分:1)

您仍然可以通过覆盖android / app / build.gradle完全完成自己的事情:

  • def flutterVersionCode
  • def flutterVersionName

使用您自己的值。

答案 11 :(得分:1)

我认为没有人真正回答过这个问题。许多建议正在更新 pubspec 中的版本。但根据您的部署,您可能不会使用这些值。

flutter build --build-number=X --build-name=Y

X 被用作您的版本代码 Y 用作您的版本名称

要测试只需运行构建并检查 local.properties

答案 12 :(得分:0)

将版本代码,名称更改为:

代码:20100

名称:2.1.0

答案 13 :(得分:0)

pubspec.yaml中的第一个变化扑扑版本 示例`1.0.3 + 4版本

如果是android,请转到local.properties,然后更改版本名称和代码,例如flutter版本代码和名称。

如果是Ios,请比生成的FLUTTER_BUILD_NAME = 1.0.3转到generate.xcconfig FLUTTER_BUILD_NUMBER = 4`

答案 14 :(得分:0)

  • 在pubspec.yml version: 1.0.0+1
  • 更改为version: 1.0.0+2
  • flutter build ios --release-name --release-number将更新ios中的版本
  • flutter pub get && flutter run将更新android(android / local.properties)的版本

答案 15 :(得分:0)

任何解决方案对 App Bundle 都不起作用,我改为 APK 并且版本没有问题。

不清楚为什么。

答案 16 :(得分:0)

这对我有用! 我将第一个应用程序识别为默认版本名称 1.0.0 版本号 1 所以这意味着 1.0.0+1

我在 pubspec.yaml 中写入 1.0.0+2 后更新了我的应用。

答案 17 :(得分:0)

您可以更新 local.properties 文件,

enter image description here

答案 18 :(得分:0)

所有这些答案都反映了官方文档,这就是我设置 versionNameversionCode 的方式。但是当我上传我的构建时,我得到了与帖子作者报告的相同的错误。

我以前在 Play 商店中的版本代码显示为 4 (0.0.2) ...我已经习惯了 iOS 的工作方式,所以这对我来说看起来很奇怪。括号中的数字应该是build/code 数字,主数字是实际的version 数字。必要时增加内部版本号,而不必增加 version(因为没有重大变化)。

因此,当我尝试上传带有新版本号的 0.0.3+1 以针对此新版本递增时,它抱怨 1 已被使用。

那么这在 Play 商店中是如何运作的呢?我也很迷茫。