Flutter: обновите код версии для игрового магазина

Я опубликовал в play store приложение с флаттером, теперь хочу загрузить новую версию приложения. Я пытаюсь изменить код версии с помощью:

сборка флаттера apk --build-name = 1.0.2 --build-number = 3

или изменить local.properties, как это

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

но каждый раз, когда я получаю ошибку в магазине игр

Вы должны использовать другой код версии для своего APK или Android App Bundle, потому что код 1 уже назначен другому APK или Android App Bundle.


person Pondikpa Tchabao    schedule 01.12.2018    source источник


Ответы (18)


версия в файле pubspec.yaml

Обновите version:A.B.C+X в pubspec.yaml.

Для Android:

A.B.C представляет versionName, например 1.0.0.

X (число после +) представляет versionCode, например 1, 2, 3 и т. Д.

Не забудьте выполнить flutter build apk или flutter run после этого шага, потому что: Когда вы запускаете flutter build apk или flutter run после обновления этого version в pubspec файле, обновляются versionName и versionCode в local.properties, которые позже подбираются в build.gradle (app) при создании проекта флаттера с использованием flutter build apk или flutter run, который в конечном итоге отвечает за установку versionName и versionCode для apk.

Для iOS:

A.B.C представляет CFBundleShortVersionString, например 1.0.0.

X (число после +) представляет CFBundleVersion, например 1, 2, 3 и т. Д.

Не забудьте выполнить flutter build ipa или flutter run после этого шага.

person Rohan Taneja    schedule 10.07.2019
comment
Это правильный ответ, и он должен быть принятым. - person Daniel Allen; 11.10.2019
comment
благодарю вас! для Android ключевым моментом является запуск flutter run после изменения pubspec.yaml, иначе студия Android создаст apk / aab со старым кодом версии на основе local.properties - person Dika; 27.11.2019
comment
так что в какой-то момент приложение может выглядеть 5.1.3+201, верно? - person Chuck K; 07.01.2020
comment
Для каждого выпуска также должен быть изменен код версии. Например, вы не можете просто изменить название версии с 1.0.0 + 1 на 1.1.0 + 1. Его необходимо изменить на 1.1.0 + 2 - person akfaisel; 25.09.2020
comment
@ChuckK Правильно. - person Rohan Taneja; 09.10.2020

Выяснил это. Документация не проста

в вашем pubspec.yaml измените версию вот так

version: 1.0.2+2

где материал - VER_NAME + VER_CODE

person David Hulmes    schedule 21.01.2019
comment
Я не могу поверить, что этого нет в официальной документации по delpoyment . Так неприятно найти здесь ответ ... - person Tokenyet; 22.05.2019
comment
Стратегия здесь правильная, но целое число после + - это код версии, а не имя версии. - person Daniel Allen; 11.10.2019
comment
@Tokenyet Это сейчас :) - person Rohan Taneja; 25.10.2019
comment
Как сказал @DanielAllen ранее: versionName - это before +, а versionCode - это после + - person Alex Semeniuk; 28.10.2019
comment
1.0.2 - это имя версии, а +2 - это код версии. Спасибо! Это мне очень помогло! - person Renan Coelho; 24.01.2020
comment
В моем файле pubspec.yaml была версия 1.0.0 + 1, я взял сборку и загрузил ее в игровой магазин. Но в игровом магазине код версии отображается как 2001. Позже я отредактировал в pubspec до версии: 1.0.0 + 2 и взял сборку, эта версия показывает код версии 2002 в игровом магазине. Как это произошло? В локальных свойствах android versionName = 1.0.0 и versionCode = 2 - person Vettiyanakan; 08.08.2020
comment
Вам нужно только обновить код версии, название версии не обязательно - person Filippos Zofakis; 23.10.2020

Решение:

Внутри pubspec.yaml добавьте это (возможно, после описания, тот же отступ, что и в описании, имени и т. Д.):

version: 2.0.0+2

Затем пакеты попадают в локальный каталог flutter (не забудьте это сделать)

Пояснение:

Все, что до плюса - это название версии, а после - код версии. Итак, здесь код версии - 2, а имя - 2.0.0. Каждый раз, когда вы обновляете приложение Flutter, обязательно меняйте код версии!

Дополнительная информация:

Всякий раз, когда создается приложение для Android, build.gradle внутри android / app / ищет код и имя версии. Обычно это находится в local.properties, который изменяется каждый раз, когда вы меняете flutter pubspec.yaml.

person Vidor Vistrom    schedule 31.03.2019

Номер версии приложения по умолчанию - 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 имя сборки используется как имя версии, а номер сборки - как код версии. Для получения дополнительной информации см. Версия приложения.

После обновления номера версии в pubspec file запустите flutter pub get из верхней части проекта или используйте кнопку Pub get в своей среде IDE. Это обновляет versionName и versionCode в файле local.properties, которые позже обновляются в файле build.gradle, когда вы перестраиваете приложение Flutter.

person Paresh Mangukiya    schedule 26.08.2020

Обновление номера версии приложения. Номер версии приложения по умолчанию - 1.0.0. Чтобы обновить его, перейдите к файлу pubspec.yaml и обновите следующую строку:

версия: 1.0.0 + 1

Номер версии - это три числа, разделенных точками, например 1.0.0 в приведенном выше примере, за которым следует необязательный номер сборки, например 1 в приведенном выше примере, разделенный знаком +.

И версию, и номер сборки можно переопределить в сборке Flutter, указав --build-name и --build-number соответственно.

В Android имя сборки используется как имя версии, а номер сборки - как код версии. Дополнительные сведения см. В разделе «Версия приложения» в документации Android.

person Emmanuel Ametepee    schedule 17.05.2020
comment
Вот ссылка на официальную документацию по развертыванию: Обновление версии приложения номер - person Ahmad Payan; 08.08.2020

Для Android

X.Y.Z + n здесь x.y.z представляет ИМЯ ВЕРСИИ, а n представляет НОМЕР ВЕРСИИ. Необходимо внести следующие изменения:

  1. В pubspec.yaml измените номер вашей версии.
  2. Обновите свой local.properties, выполнив команду flutter pub get.
  3. Теперь создайте свой apk или пакет приложений, выполнив команду flutter build apk или flutter build appbundle.
person Akhil Shukla    schedule 13.08.2020

Если вы уже изменили versionCode, это может быть связано с тем, что Play Console уже приняла вашу сборку.

Вместо того, чтобы нажимать на загрузку, нажмите Выбрать из библиотеки и выберите уже отправленную сборку.

введите описание изображения здесь

person Soon Santos    schedule 30.03.2021
comment
это сработало для меня - person vishalknishad; 07.04.2021
comment
это сработало и для меня, глупо. - person Eddie; 16.05.2021

Документы говорят, что аргументы сборки должны переопределять pubspec.yml:

Как версию, так и номер сборки можно переопределить в сборке Flutter, указав --build-name и --build-number соответственно.

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

person Evandro Pomatti    schedule 27.02.2020

Проверять

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

на android ›app› Build.gradle из корневой папки вашего проекта.

person Abhinand V B    schedule 30.07.2020

Вы по-прежнему можете заниматься своими делами, перезаписав в android / app / build.gradle:

  • def flutterVersionCode
  • def flutterVersionName

к вашим собственным ценностям.

person 0llie    schedule 04.09.2020

Я не думаю, что кто-то на самом деле ответил на этот вопрос. Многие предложения обновляют версию в pubspec. Но в зависимости от вашего развертывания вы можете не использовать эти значения.

сборка флаттера --build-number = X --build-name = Y

X используется как ваш код версии. Y используется как ваше название версии

Чтобы протестировать, просто запустите build и проверьте local.properties

person Ali_R    schedule 15.04.2021

Первое изменение версии флаттера в примере pubspec.yaml `version 1.0.3 + 4

В случае Android перейдите в local.properties, а затем измените имя и код версии так же, как код и имя версии flutter.

В случае iOS перейдите в файл generated.xcconfig, а не измените его FLUTTER_BUILD_NAME = 1.0.3 FLUTTER_BUILD_NUMBER = 4`

person Adam    schedule 14.05.2019
comment
не нужно менять local.properties и сгенерированный.config - person Marcel Hofgesang; 27.02.2020

У меня была такая же проблема, решаю перезапуском Android Studio.

person Malik Elbadri    schedule 01.08.2020

  • в 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)
person sultanmyrza    schedule 03.09.2020

Ни одно из решений не помогло мне с App Bundle, я перешел на APK и никаких проблем с версией.

Хотя непонятно почему.

person Juancki    schedule 16.02.2021

это работает для меня! Я распознал это первое приложение как Имя версии по умолчанию 1.0.0 Номер версии 1, так что это означает 1.0.0 + 1

Я обновил свое приложение после того, как написал как 1.0.0 + 2 в pubspec.yaml.

person mhmd82    schedule 23.02.2021

вы можете обновить local.properties файл,

введите описание изображения здесь

person Rj_Innocent_Coder    schedule 31.03.2021

Все эти ответы отражают официальную документацию, и именно так я устанавливаю свои versionName и versionCode. Но когда я загружаю свою сборку, я получаю ту же ошибку, о которой сообщил автор сообщения.

Код моей предыдущей версии в магазине воспроизведения отображается как 4 (0.0.2) ... Я привык к работе iOS, поэтому мне это показалось странным. Число в скобках должно быть числом build/code, а основное число - фактическим числом version. Увеличение номера сборки при необходимости без увеличения version (поскольку нет значительных изменений).

Поэтому, когда я попытался загрузить 0.0.3+1 с новым номером сборки для увеличения для этой новой версии, он пожаловался, что 1 уже использовался.

Итак, как это работает в магазине Play? Я тоже в замешательстве.

person Lee Probert    schedule 16.07.2021