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

Pon*_*bao 25 android release flutter

我已经在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
Run Code Online (Sandbox Code Playgroud)

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

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

小智 45

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

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

version: 1.0.2+2
Run Code Online (Sandbox Code Playgroud)

我认为+后面的内容是versionName

  • 我无法相信[官方部署文档](https://flutter.dev/docs/deployment/android#review-the-build-configuration)中未提供此功能。在这里找到答案真是令人沮丧... (7认同)
  • 此处的策略是正确的,但是+后面的整数是versionCode,而不是versionName。 (4认同)
  • 1.0.2 是版本名称,+2 是版本代码。谢谢!这对我帮助很大! (3认同)

Roh*_*eja 37

pubspec.yaml文件中的版本

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

对于Android:

A.B.C代表versionName诸如1.0.0

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

当您在文件中对此进行更新flutter packages get后运行时,和中将被更新,这些更新随后将在您使用或来构建flutter项目时在中进行选择,而最终负责设置apk 和the apk。versionpubspecversionNameversionCodelocal.propertiesbuild.gradle (app)flutter buildflutter runversionNameversionCode

对于iOS:

A.B.C代表CFBundleShortVersionString诸如1.0.0

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

  • 谢谢你!对于android,关键点是在更改pubspec.yaml后运行`flutter run`,否则android studio将基于local.properties使用旧版本代码构建apk / aab (28认同)
  • 这是正确的答案,应该是公认的答案。 (8认同)
  • 对于每个版本,版本代码也必须更改。例如,您不能简单地将版本名称从 1.0.0+1 单独更改为 1.1.0+1。必须改为1.1.0+2 (8认同)
  • 那么在以后的某个时间点,应用程序可能看起来像“5.1.3+201”,对吧? (7认同)
  • @Neail是的,版本代码是整数值或发布计数器,就像您建议的那样。版本代码只能分配给 PlayStore/AppStore 上的一个版本。因此,如果您已经上传了版本号 1,则您永远无法上传具有相同编号的另一个版本,无论它正在审核还是已发布。如果您愿意,可以保持版本名称相同。 (4认同)

Par*_*iya 19

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

version: 1.0.0+1
Run Code Online (Sandbox Code Playgroud)

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

version: 1.0.1+2
Run Code Online (Sandbox Code Playgroud)

版本号是由点分隔的三个数字,例如上例中的 1.0.0,然后是可选的构建号,例如上例中的 1,用 + 分隔。

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

在 Android 中,build-name 用作 versionName,而 build-number 用作 versionCode。有关更多信息,请参阅版本您的应用

更新 中的版本号后pubspec fileflutter pub从项目顶部运行get,或使用 IDE 中的 Pub get 按钮。这会更新文件中的versionNameversionCodelocal.properties稍后在build.gradle您重建 Flutter 应用程序时会更新文件中的和。


ayo*_*bra 16

就我而言,我通过更改两个文件解决了同样的问题:

1- 在 pubspec.yaml 中:

从:

version: 1.0.0+1
Run Code Online (Sandbox Code Playgroud)

到:

version: 1.0.0+2
Run Code Online (Sandbox Code Playgroud)

2-在 android/locale.properties 中

从:

flutter.versionName=1.0.0
flutter.versionCode=1
Run Code Online (Sandbox Code Playgroud)

到:

flutter.versionName=1.0.0
flutter.versionCode=2
Run Code Online (Sandbox Code Playgroud)

3- 最后一个动作:

flutter clean
flutter packages get
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案 (2认同)
  • 这对我有用谢谢! (2认同)

Akh*_*kla 13

对于安卓

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

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


Cra*_*ind 8

仍然有人在寻找好的答案

pubsec.yaml文件中

将版本:1.0.0+1更改 为版本:1.0.0+2

然后通过选择在 android 中打开您的代码

文件 -> 打开 -> 你的 Flutter 代码工作区 -> 项目的 Android 图标

现在去build.gradel

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '2'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0.2'
}
Run Code Online (Sandbox Code Playgroud)

现在是最后一个local.property文件

sdk.dir=C:/Users/Admin/AppData/Local/Android/Sdk
flutter.sdk=D:\\flutter_windows\\flutter
flutter.buildMode=debug
flutter.versionName=1.0.0
flutter.versionCode=1
Run Code Online (Sandbox Code Playgroud)

sdk.dir=C:/Users/Admin/AppData/Local/Android/Sdk
flutter.sdk=D:\\flutter_windows\\flutter
flutter.buildMode=debug
flutter.versionName=1.0.2
flutter.versionCode=2
Run Code Online (Sandbox Code Playgroud)


小智 7

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

版本:1.0.0+1

版本号是由点分隔的三个数字,例如上例中的 1.0.0,然后是可选的构建号,例如上例中的 1,用 + 分隔。

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

在 Android 中,build-name 用作 versionName,而 build-number 用作 versionCode。有关更多信息,请参阅 Android 文档中的版本应用程序。

  • 以下是官方部署文档的链接:[更新应用程序的版本号](https://flutter.dev/docs/deployment/android#updating-the-apps-version-number) (2认同)

小智 7

对于上述 flutter 2.10.2 版本,请按照以下步骤操作

第 1 步:更改以下更改pubspec.yaml

    //change version 1.0.0+1 to 1.0.0+2
version: 1.0.0+2
    
    environment:
      sdk: ">=2.16.1 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

第 2 步:更改以下更改android\local.properties

flutter.sdk=C:\\flutter
flutter.buildMode=release

// Change here flutter.versionName=1.0.0 to flutter.versionName 1.0.1
flutter.versionName=1.0.1

 //Change here flutter.versionCode=1 to flutter.versionCode=2
flutter.versionCode=2

flutter.minSdkVersion=21
flutter.targetSdkVersion=31
flutter.compileSdkVersion=31
Run Code Online (Sandbox Code Playgroud)


Vid*_*rom 6

解:

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

version: 2.0.0+2

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

说明:

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

附加信息:

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


Soo*_*tos 6

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

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

在此处输入图片说明


小智 6

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

颤振构建 --build-number= X --build-name= Y

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

要测试,只需运行 build 并检查 local.properties


小智 5

查看

android{
//....
  defaultConfig {
  //....
  version code:2
  }
}
Run Code Online (Sandbox Code Playgroud)

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