我已经用flutter在play store发布了一个应用,现在我想上传一个新版本的应用。我正在尝试更改版本代码:

Flutter build apk——build-name=1.0.2——build-number=3

或者改变局部。像这样的属性

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

但每次我在游戏商店出错

您必须为您的APK或Android应用程序包使用不同的版本代码,因为代码1已经分配给另一个APK或Android应用程序包。


当前回答

Play Store只单独地查看versionCode,这可能对登陆这里的其他人有帮助。所以,如果你已经更新了你的versionNumber,例如,1.0.0+1到1.1.0+1 Play Store将抛出一个错误,versionCode没有改变。因此,不管你的versionNumber是什么,你也必须改变你的versionCode——比如,从1.0.0+1变成1.1.0+2

其他回答

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

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

X被用作版本代码 使用Y作为版本名

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

Docs说build args应该覆盖pubspec.yml:

版本和构建号都可以在Flutter的中被覆盖 通过分别指定——Build -name和——Build -number来构建。

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

例如,如果你要制作android 3版本,

对于Android,请访问 pubspec。Yaml和编辑在这里

version: 3.0.0

然后去建造。Gradle和编辑在这里

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

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '3.0' 

对于上述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"

步骤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

更新版本:pubspec.yaml中的A.B.C+X。

为Android:

a.b.c.表示versionName,例如1.0.0。

X(+后面的数字)表示versionCode,如1、2、3等。

在此步骤之后,不要忘记执行flutter build apk或flutter run,因为:当您在pubspec文件中更新此版本后运行flutter build apk或flutter run时,本地的versionName和versionCode将被删除。属性稍后在构建中被更新。当您使用flutter build apk或flutter run构建您的flutter项目时,gradle (app)最终负责为apk设置versionName和versionCode。

iOS:

a.b.c.表示CFBundleShortVersionString,例如1.0.0。

X(+后面的数字)表示CFBundleVersion,例如1、2、3等。

不要忘记在此步骤后执行颤振构建ipa或颤振运行