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 / app / build.gradle:

  • def flutterVersionCode
  • def flutterVersionName

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


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)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.