Какой у вас опыт работы с Fastlane для iOS?

Ответ

Использовал Fastlane для автоматизации CI/CD пайплайнов iOS-приложений.

Основные сценарии:

  • match — управление сертификатами и профилями
  • gym — автоматические сборки
  • pilot — загрузка в TestFlight
  • snapshot — генерация скриншотов для App Store
  • deliver — публикация в App Store

Пример Fastfile:

lane :beta do
  increment_build_number
  build_app(
    workspace: "App.xcworkspace",
    scheme: "App",
    export_method: "app-store"
  )
  upload_to_testflight(skip_waiting_for_build_processing: true)
end

Интеграция с CI/CD:

  • GitHub Actions
  • Bitrise
  • Jenkins

Преимущества:

  • Сокращение ручных операций
  • Единая конфигурация для команды
  • Воспроизводимость сборок

Ответ 18+ 🔞

А, Fastlane, блядь! Ну это же просто песня, а не инструмент, ёпта! Сидишь такой, как этот Герасим немой, и каждый раз вручную эти сертификаты хуяришь, профили, сборки... Глаза бы мои не глядели, в рот меня чих-пых!

А тут подъезжает этот Fastlane, такой хитрожопый, и говорит: «Расслабься, мудила, я всё за тебя сделаю». И ведь реально делает, сука!

Что он там умеет, этот шерстяной пидарас:

  • match — это вообще магия, ёбана! Раньше у тебя в команде один чел — царь и бог сертификатов. Все ему в жопу целуют: «Вась, выдай профиль, а то сборка не идёт!». А теперь всё в одном репозитории, зашифрованное. Подключился — и у тебя всё как у людей. Никаких «ой, а у меня другой provisioning profile». Красота, блядь!
  • gym — собрать приложение. Раньше в Xcode тыкаешь, как обезьяна в калькулятор, ждёшь, молишься. А тут команда одна — и поехали. Хуй с горы!
  • pilot — закинуть в TestFlight. Раньше это был пиздец: Archive, Validate, Distribute, ждать, пока Apple всё проглотит... Теперь сиди, кофе пей. Загрузил и забыл.
  • snapshot — скриншоты для стора. Это вообще отдельный вид ебалы. Надо было на каждом девайсе, для каждого языка вручную наделать. Теперь написал скрипт — и мартышлюшка сама всё насимает. Удивление пиздец!
  • deliver — выкатить в прод. Опять же, минус тонна нервных клеток.

Вот, смотри, как это в коде выглядит, простыня ебаная:

lane :beta do
  increment_build_number # Циферку в билде подкрутит, чтобы не путаться
  build_app( # И пошла сборка, мать её
    workspace: "App.xcworkspace",
    scheme: "App",
    export_method: "app-store"
  )
  upload_to_testflight(skip_waiting_for_build_processing: true) # И в тестфлайт, не дожидаясь у моря погоды
end

Запустил одну команду fastlane beta — и пошло-поехало. Сиди, бзди в потолок. Волнение ебать — ноль.

А впихнуть его можно куда угодно, сука:

  • GitHub Actions — вообще родная братва, там всё из коробки.
  • Bitrise — там его уже чуть ли не насильно вставляют, такой он овердохуищный.
  • Jenkins — ну, для мазохистов, но тоже впендюрится без проблем.

И в чём, собственно, кайф, блядь?

  • Рутины ноль ебать. Не надо каждый раз как попугай повторять одни и те же телодвижения.
  • Всё по-чесноку. У всей команды конфиг один. Собрал у себя — собралось и у коллеги. Никаких «а у меня работает».
  • Повторимость. Собрал билд сегодня, соберёшь и через год. Всё записано, как в протоколе.

Короче, Fastlane — это как взять и нанять себе робота-хуеплета, который всю эту нудятину делает за тебя. Освобождает время на действительно важные вещи. Ну, или на то, чтобы просто охуенно потупить. Да похуй, в общем! Главное — работает.