Если вы когда-либо разработали мобильные приложения и опубликовали их в их магазины, вы знаете о конкретных правилах версий приложения. Эти правила вращаются вокруг двух свойств: номера версий приложений и увеличение номера сборки. Версия для версий является критическим компонентом обновления и стратегии обновления приложений.
Получение наших фактов Верно
Версификация приложений
На iOS версия приложения представлена Cfbundleshortversionsring
Ключ, который должен соответствовать семантической версии ( https://semver.org/ ). Этот ключ представляет собой машинную строку, состоящую из целых чисел, разделенных от одного до трех, таких как 10.14.1. Строка может содержать только числовые символы (0-9) и периоды. Каждое целое число содержит информацию о версии сборки в формате [Major]. [Minor]. [Patch]: Главный: Основной номер ревизии. Незначительный: Незначительный номер редакции. Патч: Номер выпуска технического обслуживания.
Источник: https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion.
На Android версия приложения представлена Версия знамена
внутри build.gradle file
Отказ Android не обеспечивает никаких правил, когда дело доходит до указания имени.
Номер сборки
Номер сборки ( CFBundleVersion
на iOS, версийный элемент retestionCode Code
на Android) является идентификатором, который используется только для определения того, является ли одна версия приложения более свеже, чем другая, с более высоким числом, указывающим более позднее версия. Как Google Play Store, так и Apple Appstore используют номер сборки для защиты от понижения, не позволяя пользователям установить приложение с более низким номером сборки, чем версия, в настоящее время установленная на их устройстве. На Android этот номер является целым числом, но на iOS, этот номер можно представить как целое число, либо как семантическую версию.
Путь трепетания
Команда Thurter решила справиться с этим очень аккуратно; У них есть недвижимость в pubspec.yaml
называется Версия
Это следует этот рисунок: {мажор}. {minor}. {patch} + {Версия}
Поэтому, чтобы опубликовать наше приложение с версией приложения 1.2.4 и построить номер 5, наш pubspec.yaml
был бы Версия
Свойство, которая выглядит так: Версия: 1.2.4 + 5
В следующий раз приложение проходит процесс сборки, эти значения применяются. Тем не менее, вопрос в том, как мы можем автоматизировать весь этот процесс версий?
Flutter_version_manager Plugin для Fastlane — самая забавная часть!
FastLane — это самый простой способ построить и выпустить мобильные приложения. Он широко использовался сообществом разработчиков мобильных приложений. Он написан в Ruby, является открытым исходным кодом, и он имеет большую поддержку для разработки собственных плагинов. Это сказал, я представляю тебе flutter_version_manager плагин
Для Fastlane: https://github.com/rubiconba/fastlane-plugin-flutter-version-manager
(Обратите внимание, что это подход очень субъективен, так как это метод, который я использую для обработки версий приложения)
Этот плагин в значительной степени заключается в том, чтобы иметь репозиторий GIT, и, по крайней мере, один коммит, поскольку номер сборки применяется через TimeStamp The Head Commit. Используя мощность Git, нам больше не нужно беспокоиться о увеличении ВерсияCode/CFBundleVersion
Отказ Что касается версии приложения, версия.yml
Файл, который мы должны были создать вручную, должен использоваться в качестве единого источника истины. Теперь есть пару способов обработки версии приложения, используя этот плагин:
- Увеличить версию вручную и позвонить
-Прифуйте
на плагине Fastlane.-Прифуйте
Команда автоматически применит все изменения вpubspec.yaml.
- Используйте
-главный
,МИНОР
или-Patch
Поднять семантическую версию. Это автоматически звонит-Прифуйте
и обновляетpubspec.yaml
Отказ
Что говорится, что инженер DevOps имеет власть над управлением управлением. Например, он может создать патч
Труба, которая работает на патч
ветвь, которая позвонит deply_as_patch
Переулка, которая автоматически ударила версию Patch и развертывает последнюю версию. Вы можете найти пример FastFile здесь Отказ Полная документация доступна в Git Repository Отказ Этот плагин является открытым источником и любые вклады на него более чем приветствуются. Счастливые девязы! ^^.
Первоначально опубликовано https://www.rubicon-world.com .
Оригинал: «https://dev.to/davormaricdev/automating-flutter-app-versioning-using-fastlane-plugin-3015»