Ответ
Использовал 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 — это как взять и нанять себе робота-хуеплета, который всю эту нудятину делает за тебя. Освобождает время на действительно важные вещи. Ну, или на то, чтобы просто охуенно потупить. Да похуй, в общем! Главное — работает.