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


91

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

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

或像这样更改local.properties

 flutter.versionName=2.0.0
 flutter.versionCode=2
 flutter.buildMode=release

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

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

Answers:


207

pubspec.yaml文件中的版本

version:A.B.C+X在中更新pubspec.yaml

对于Android:

A.B.C代表versionName诸如1.0.0

X(后数+)表示versionCode,如123等。

不要忘了执行flutter packages getflutter buildflutter run这一步之后,这是因为:当您运行flutter packages get更新此之后version将在pubspec文件中,versionNameversionCodelocal.properties更新将在稍后的回升build.gradle (app),当您使用建立你扑项目flutter build或者flutter run是最终用于设置负责versionNameversionCode对于apk。

对于iOS:

A.B.C代表CFBundleShortVersionString诸如1.0.0

X(后数+)表示CFBundleVersion,如123等。

不要忘了执行flutter packages getflutter build或者flutter run在此步骤之后


4
这是正确的答案,应该是公认的答案。
丹尼尔·艾伦

12
谢谢!对于android,关键点是flutter run在更改pubspec.yaml之后运行,否则android studio将基于local.properties使用旧版本代码构建apk / aab
Dika

4
所以在以后的某个时间,一个应用看起来可能5.1.3+201正确吗?
Chuck K

1
感谢@Dika,这一点对我来说也很关键
David SantiagoTuriño

对于每个发行版,还必须更改版本代码。例如,您不能简单地将版本名称仅从1.0.0 + 1更改为1.1.0 + 1。它必须更改为1.1.0 + 2
akfaisel

130

想通了这一点。文档不是直接的

在您的pubspec.yaml更改版本中,像这样

version: 1.0.2+2

东西是VER_NAME +VER_CODE


16
我不敢相信官方的正式部署文档中没有提供此功能。在这里找到答案真令人沮丧……
Tokenyet

8
这里的策略是正确的,但是+后面的整数是versionCode,而不是versionName。
丹尼尔·艾伦

@Tokenyet现在是:)
Rohan Taneja

正如@DanielAllen说过:的versionName之前+的versionCode之后+
亚历Semeniuk

2
1.0.2是versionName,而+2是versionCode。谢谢!这对我很有帮助!
Renan Coelho

18

解:

在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.0.0。要更新它,请导航到pubspec.yaml文件并更新以下行:

版本:1.0.0 + 1

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

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

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


以下是官方部署文档的链接:更新应用程序的版本号
Ahmad Payan

3

对于Android

“ XYZ + n”在这里“ xyz”代表版本名称,“ n”代表版本编号。进行以下更改-

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

3

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

version: 1.0.0+1

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

version: 1.0.1+2

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

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

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

更新了中的版本号后pubspec fileflutter pub从项目顶部运行get,或使用IDE中的Pub get按钮。这将更新versionNameversionCode中的local.properties文件,然后在build.gradle重建Flutter应用程序时在文件中对其进行更新。


1

pubspec.yaml示例`version 1.0.3 + 4中的第一个更改flutter版本

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

如果是Ios,则比chnage FLUTTER_BUILD_NAME = 1.0.3 FLUTTER_BUILD_NUMBER = 4转到generate.xcconfig。


无需更改local.properties和generate.config
Marcel Hofgesang


1

检查一下

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

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



1

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

  • def flutterVersionCode
  • def flutterVersionName

自己的价值观。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.