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

91

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

сборка флаттера 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.

Пондикпа Чабао
источник

Ответы:

208

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

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

Для Android:

A.B.Cпредставляет собой versionNameтакой как 1.0.0.

X(число после +) представляет собой versionCodeтакие , как 1, 2, 3и т.д.

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

Для iOS:

A.B.Cпредставляет собой CFBundleShortVersionStringтакой как 1.0.0.

X(число после +) представляет собой CFBundleVersionтакие , как 1, 2, 3и т.д.

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

Рохан Танежа
источник
4
Это правильный ответ, и он должен быть принятым.
Дэниел Аллен
12
Спасибо! для Android ключевым моментом является запуск flutter runпосле изменения pubspec.yaml, в противном случае студия Android создаст apk / aab со старым кодом версии на основе local.properties
Дика
4
так что в какой-то момент приложение может выглядеть 5.1.3+201правильно?
Chuck K
1
Спасибо, @Dika, этот момент был ключевым для меня
Дэвид Сантьяго Туриньо,
Для каждого выпуска также должен быть изменен код версии. Например, вы не можете просто изменить название версии с 1.0.0 + 1 на 1.1.0 + 1. Его нужно изменить на 1.1.0 + 2
акфайсел
131

Разобрался с этим. Документация не проста

в вашей pubspec.yamlизмените версию, подобную этой

version: 1.0.2+2

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

Дэвид Халмс
источник
16
Я не могу поверить, что этого нет в официальной документации по дельпойменту . Так обидно найти здесь ответ ...
Tokenyet
8
Стратегия здесь правильная, но целое число после + - это код версии, а не имя версии.
Дэниел Аллен
@Tokenyet Это сейчас :)
Рохан Танеджа
Как @DanielAllen сказал раньше: versionName это перед тем в + и VersionCode это после того, как в +
Alex Семенюк
2
1.0.2 - это имя версии, а +2 - это код версии. Спасибо! Это мне очень помогло!
Ренан Коэльо
18

Решение:

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

version: 2.0.0+2

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

Пояснение:

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

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

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

Видор Вистром
источник
6

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

версия: 1.0.0 + 1

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

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

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

Эммануэль Аметепи
источник
Вот ссылка на официальную документацию по развертыванию: Обновление номера версии приложения
Ахмад Паян,
3

Для Android

«XYZ + n» здесь «xyz» представляет ИМЯ ВЕРСИИ, а «n» представляет НОМЕР ВЕРСИИ . Необходимо внести следующие изменения:

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

Номер версии приложения по умолчанию - 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 pubget из верхней части проекта или используйте кнопку Pub Get в своей среде IDE. Это обновляет versionNameи versionCodeв local.propertiesфайле, которые позже обновляются в build.gradleфайле, когда вы перестраиваете приложение Flutter.

Пареш Мангукия
источник
1

Первое изменение версии flutter в pubspec.yaml example `version 1.0.3 + 4

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

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

Адам
источник
нет необходимости изменять local.properties и сгенерированный.config
Марсель Хофгесанг
1

Проверьте

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

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

Абхинанд В.Б.
источник
1

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

Малик Эльбадри
источник
1

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

  • def flutterVersionCode
  • def flutterVersionName

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

0llie
источник
0
  • в 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)
Султанмырза Касымбеков
источник