代码之家  ›  专栏  ›  技术社区  ›  Suragch Shmidt

如何设置颤振应用程序的版本号和版本号

  •  1
  • Suragch Shmidt  · 技术社区  · 7 年前

    在我的出版物中,我有

    version: 2.0.0
    

    但我看不到一个地方的建设号码。

    1 回复  |  直到 5 年前
        1
  •  99
  •   Suragch Shmidt    6 年前

    设置版本和内部版本号

    . 只要用一根绳子把它们分开就行了 + 签名例如:

    version: 2.0.0+8
    

    这意味着

    • 版本名为 2.0.0
    • 8

    这在新项目的文档中有描述(但如果您正在处理旧项目,则可能已删除该文档):

    下面定义了应用程序的版本和内部版本号。 后跟可选的内部版本号,以+分隔。 版本和制造商编号都可能在颤振中被覆盖 通过分别指定--build name和--build number来生成。 在semver.org上阅读更多关于版本控制的信息。

    version: 1.0.0+1

    重新启用自动版本控制

    this answer 关于如何修复它。

    另见:

        2
  •  29
  •   Suragch Shmidt    6 年前

    abion47 Versioning with Flutter

    重新启用自动版本控制

    默认情况下,将设置一个颤振项目,以便在构建项目时根据pubspec.yaml中的版本设置自动更新Android和iOS设置。但是,如果您已经覆盖了这些设置,则可以通过执行以下操作重新启用该行为:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      ...
      <key>CFBundleVersion</key>
      <string>$(FLUTTER_BUILD_NUMBER)</string>
      <key>CFBundleShortVersionString</key>
      <string>$(FLUTTER_BUILD_NAME)</string>
      ...
    </dict>
    ...
    

    打开 android/app/build.gradle

    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }
    
    def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
    if (flutterVersionCode == null) {
        throw new GradleException("versionCode not found. Define flutter.versionCode in the local.properties file.")
    }
    
    def flutterVersionName = localProperties.getProperty('flutter.versionName')
    if (flutterVersionName == null) {
        throw new GradleException("versionName not found. Define flutter.versionName in the local.properties file.")
    }
    

    android.defaultConfig versionName 是 flutterVersionName 和 versionCode 是 flutterVersionCode.toInteger() :

    android {
      ...
      defaultConfig {
        ...
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
      }
    }
    
        3
  •  3
  •   Mohd Danish Khan    6 年前

    在Android中,版本名用作版本名,而版本号用作版本代码。 更多关于Android版本控制的信息,请访问 https://developer.android.com/studio/publish/versioning 在iOS中,生成名称用作CbundleShortVersionString,而生成编号用作CbundLeverVersion。 阅读有关iOS版本控制的更多信息,请访问 https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

    您可以在pubsec.yaml中获取上述信息

    您将在android/app/build.gradle中找到versionCode或buildnumber(适用于android)。

    defaultConfig {
            applicationId "com.fabio.resturanto"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            multiDexEnabled true
    
        }
    

    您的local.properties文件中有flatterVersionCode和flatterVersionName。这是特定于Android构建的

    version: 1.2.0+1
    

    这里1.2.0是版本名,+1是版本代码。 此处的更改(pubspec.ymal)将反映Android和iOS版本名称和版本代码。

        4
  •  3
  •   Sumit Shukla    5 年前

    什么对我有效(Android):

    • 使现代化 内部颤振项目文件 versionname 和 versioncode .
    • flutter pub get 在终点站。
    • 在设备中运行项目。
    • 打开 安卓 Andriod Studio中的模块并检查 local.properties flutter.versionName flutter.versionCode 文件位于gradle文件夹中。
        5
  •  2
  •   Md Tariqul Islam    5 年前
        6
  •  2
  •   Yusuf Amr    4 年前

    version: 1.0.0+1

    我把它改成了

    version: 1.2.0+1

    flutter build appbundle --build-name=1.2.0+1 --build-number=2