Fastlane: шта је то, аутоматизација билдова и објављивања

Аутор: IT Sectr Објављено: 2026-02-13 Време читања: 10 мин

Fastlane — алат за аутоматизацију билдова и објављивања мобилних апликација за iOS и Android. Fastlane управља потписивањем кода, билдовањем, покретањем тестова, креирањем снимака екрана и отпремањем у App Store Connect и Google Play Console. То је де факто стандард за CI/CD у мобилном развоју.

Главни закључци

  • Fastlane аутоматизује цео пајплајн мобилног издања: билдовање, тестирање, потписивање и објављивање једном командом
  • Fastfile — конфигурациони фајл у Ruby-ју, у коме се описују lanes — именовани сценарији аутоматизације
  • Подршка за iOS и Android — Fastlane ради са Xcode, Gradle, App Store Connect, Google Play, TestFlight и Firebase
  • match и sigh — управљање сертификатима и provisioning profiles за iOS развој
  • Интеграција са CI/CD — Fastlane се уграђује у GitHub Actions, GitLab CI, Bitrise, Jenkins и CircleCI

Fastlane — шта је то

Fastlane — је open-source алат који аутоматизује рутинске задатке мобилног развоја: билдовање апликације, покретање тестова, креирање снимака екрана, управљање сертификатима, отпремање билдова у TestFlight, App Store и Google Play. Fastlane је написан у Ruby-ју и дистрибуира се преко RubyGems командом gem install fastlane.

Fastlane се појавио 2015. године као iOS алат, али се брзо проширио на Android. Данас је то екосистем десетина акција — уграђених команди које се могу комбиновати у сценарије, назване lanes. Сваки lane обавља конкретан задатак: на пример, build_release прави релизну верзију, а deploy_beta отпрема билд у TestFlight.

Fastlane користе компаније попут Uber, Airbnb, Snapchat, Twitter и Shopify. Према истраживању из 2024. године, преко 60% iOS програмера примењује Fastlane у својим пројектима. Алат подржава и локално покретање и интеграцију са облачним CI системима, што га чини де факто стандардом за мобилни CI/CD.

ruby
# Инсталација Fastlane-а
sudo gem install fastlane -NV

# Иницијализација у пројекту
fastlane init

Након иницијализације, Fastlane креира директоријум fastlane/ са три фајла: Fastfile (сценарији), Appfile (подешавања апликације) и Matchfile (подешавања сертификата). Ова структура остаје иста за обе платформе — iOS и Android.

Fastfile и lanes

Главни конфигурациони фајл Fastlane-а — Fastfile. Налази се у директоријуму fastlane/ у корену пројекта. Fastfile се пише у Ruby-ју: сваки lane је именовани блок са секвенцом акција. Lane може примати параметре, позивати друге lanes-ове и враћати вредности.

ruby
# fastlane/Fastfile — пример за iOS
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

Сваки lane се покреће командом fastlane ios beta или fastlane ios release. Fastfile подржава променљиве, услове, петље и позивање спољних скрипти — то је пуноправни Ruby фајл. Програмери могу поново користити код кроз private_lane (локалне методе) и import из других Fastfile-ова.

Fastlane нуди преко 200 уграђених акција за већину задатака. Ако потребна акција не постоји, може се написати сопствена у Ruby-ју или позвати shell команда преко sh("..."). Акције могу примати параметре — подешавања билда, путање, токене приступа — и враћати резултат за употребу у следећим корацима.

Аутоматизација iOS билдова

Fastlane за iOS решава три кључна проблема: управљање сертификатима и provisioning profiles, билдовање IPA кроз Xcode и објављивање у App Store Connect и TestFlight. Сваки од ових задатака покривен је посебном акцијом.

match — акција за управљање сертификатима. Чува све сертификате и provisioning profiles у шифрованом Git репозиторијуму. Сваки програмер и CI сервер користе исти скуп фајлова, што елиминише конфликте и проблеме са истеклим сертификатима. Match аутоматски ажурира профиле при додавању нових уређаја.

sigh — креира и преузима provisioning profile преко Apple Developer Portal-а. Користи се када је потребно брзо добити профил за одређени тип: development, ad-hoc или appstore.

gym — билдовање IPA. Gym обавија xcodebuild оптималним параметрима, аутоматски бира шему, конфигурацију, export options и креира потписани IPA. Пример: gym(scheme: "MyApp", export_method: "app-store").

pilot — управљање TestFlight-ом. Отпрема билд, додаје тестере, прати статус ревизије. deliver — потпуно објављивање у App Store, укључујући метаподатке, снимке екрана, цену и верзије.

ruby
# Билдовање и објављивање iOS апликације
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

За рад са App Store Connect-ом потребни су токени приступа. Fastlane подржава два начина аутентификације: App Store Connect API Key (препоручује се) и Apple ID са двофакторском аутентификацијом. API кључеви су погоднији за CI/CD јер не захтевају интерактивни унос лозинке.

АкцијаНаменаРучни аналог
matchУправљање сертификатима и профилимаApple Developer Portal
sighКреирање provisioning profile-аXcode + Developer Portal
gymБилдовање IPAxcodebuild + xcrun
pilotОтпремање у TestFlightXcode Organizer
deliverОбјављивање у App StoreApp Store Connect Web
scanПокретање UI тестоваxcodebuild test

Аутоматизација Android билдова

На Android-у, Fastlane аутоматизује билдовање кроз Gradle, потписивање APK и AAB, отпремање у Google Play Console и Firebase App Distribution.

gradle — главна акција за билдовање на Android-у. Позива Gradle wrapper са потребним задацима: gradle(task: "assembleRelease") или gradle(task: "bundleRelease") за AAB. Могу се прослеђивати заставице, променљиве окружења и путања до gradle.properties.

supply — отпремање APK или AAB у Google Play Console. Supply управља верзијама, тракама (internal, alpha, beta, production), белешкама о издању, ценом и земљом дистрибуције. Пример: supply(track: "beta", release_status: "completed").

screengrab — креирање снимака екрана за Google Play. Покреће instrumentation тестове који праве снимке екрана апликације на различитим уређајима и језицима. Добијени снимци се отпремају путем supply.

ruby
# Билдовање и објављивање Android апликације
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
АкцијаНаменаРучни аналог
gradleБилдовање кроз Gradle./gradlew assembleRelease
supplyОтпремање у Google PlayGoogle Play Console Web
screengrabКреирање снимака екранаРучни снимак + ImageMagick
firebase_app_distributionДистрибуција кроз FirebaseFirebase Console Upload

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

Fastlane је дизајниран за рад у CI/CD пајплајновима. Он исправно обрађује неинтерактивни режим, променљиве окружења и артефакте билда. Испод — примери интеграције са популарним CI системима.

У GitHub Actions, Fastlane се покреће као Ruby скрипт. Типичан workflow: инсталација Ruby-ја и Fastlane-а, подешавање кључева (сертификати, API токени преко secrets), покретање lane-а. За iOS је потребан macOS runner; Android ради на ubuntu-latest.

У GitLab CI, Fastlane се користи у .gitlab-ci.yml са сличном шемом: инсталација зависности, покретање fastlane, пренос артефаката. GitLab CI подржава macOS и Linux runner-е.

Bitrise — специјализовани CI/CD за мобилне апликације — има уграђену подршку за Fastlane. Bitrise Workflow може позвати Fastlane Step или покренути произвољне скрипте са fastlane. Bitrise управља сертификатима преко свог Code Signing менаџера.

ruby
# Fastfile за CI/CD са условним покретањем тестова
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

Важан аспект CI/CD интеграције — чување тајни. Fastlane користи фајл .env преко dotenv и променљиве окружења. За iOS критичне променљиве: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. За Android: SUPPLY_JSON_KEY_DATA — садржај сервисног налога Google Play.

Популарне Fastlane акције

Fastlane садржи преко 200 уграђених акција. Испод — преглед најпопуларнијих са назнаком платформе и намене.

АкцијаПлатформаОпис
gymiOSБилдовање IPA са оптимизованим xcodebuild параметрима
matchiOSСинхронизација сертификата и provisioning profiles кроз Git
pilotiOSОтпремање билда у TestFlight и управљање тестерима
deliveriOSОбјављивање апликације у App Store са метаподацима
scaniOSПокретање unit и UI тестова са генерисањем извештаја
gradleAndroidПокретање Gradle задатака: assemble, bundle, test
supplyAndroidОтпремање APK и AAB у Google Play Console
screengrabAndroidАутоматски снимци екрана за Google Play
firebase_app_distributionAndroidДистрибуција билдова кроз Firebase
snapshotiOSАутоматски снимци екрана на симулаторима за App Store
increment_build_numberiOSАутоинкремент build броја у Xcode пројекту
appcenter_uploadОбеОтпремање билда у App Center

За претрагу потребне акције користи се команда fastlane action [име], која приказује документацију, параметре и примере. Комплетна листа доступна локално: fastlane actions.

Fastlane такође подржава plugins — community проширења која додају нове акције. Додаци се инсталирају преко fastlane add_plugin [име] и доступни су у RubyGems регистру. Примери популарних додатака: fastlane-plugin-versioning (управљање верзијама), fastlane-plugin-sentry (отпремање debug symbols у Sentry), fastlane-plugin-teams (обавештења у Microsoft Teams).

Frequently Asked Questions

Fastlane — шта је то и зашто је потребан?

Fastlane — је алат за аутоматизацију билдова и објављивања мобилних апликација. Потребан је да замени ручне операције — билдовање, потписивање, отпремање у продавнице — једном командом. Fastlane скраћује време издања са сати на минуте и елиминише људске грешке при објављивању.

Може ли се Fastlane користити само за Android или само за iOS?

Да. Fastlane подржава обе платформе независно. За iOS је потребан macOS, за Android је довољан Linux. У једном Fastfile-у могу се раздвојити lanes по платформама: platform :ios do ... end и platform :android do ... end.

Како Fastlane управља iOS сертификатима?

Кроз акцију match. Он чува шифроване сертификате и provisioning profiles у Git репозиторијуму. Сваки програмер клонира репозиторијум, match дешифрује фајлове лозинком из променљиве MATCH_PASSWORD и инсталира их у keychain. Ово решава проблем "билдује се на мојој машини".

Да ли Fastlane ради са Firebase App Distribution?

Да. Fastlane има уграђену акцију firebase_app_distribution за отпремање APK и IPA у Firebase App Distribution. Такође је доступан firebase_app_distribution_add_testers за додавање тестера. Алтернатива — акција appcenter_upload за App Center.

Како инсталирати Fastlane на CI сервер?

Fastlane се инсталира преко RubyGems: gem install fastlane -NV. За iOS је потребан macOS са Xcode; за Android — Linux или macOS са JDK и Android SDK. У GitHub Actions постоји готова акција ruby/setup-ruby за инсталацију Ruby-ја и Fastlane-а. Променљиве окружења се прослеђују кроз secrets CI система.

По чему се Fastlane разликује од Bitrise-а или Jenkins-а?

Fastlane — је библиотека и CLI за аутоматизацију задатака билдовања и објављивања. Bitrise и Jenkins — су комплетне CI/CD платформе. Fastlane ради унутар њих: Jenkins покреће Fastlane као корак пајплајна, Bitrise позива Fastlane кроз посебан Step. Fastlane не замењује CI систем, већ га допуњује мобилном спецификом.

Summary

  • Fastlane — open-source алат за аутоматизацију билдова, тестирања и објављивања мобилних апликација за iOS и Android
  • Fastfile — конфигурациони Ruby фајл у коме се описују lanes — сценарији са секвенцом акција
  • match + gym + pilot — стандардни пајплајн за iOS: управљање сертификатима, билдовање IPA, отпремање у TestFlight
  • gradle + supply — стандардни пајплајн за Android: билдовање кроз Gradle, отпремање у Google Play Console
  • CI/CD интеграција — Fastlane се уграђује у GitHub Actions, GitLab CI, Bitrise, Jenkins и CircleCI кроз променљиве окружења
  • 200+ акција — уграђене команде за потписивање, билдовање, тестирање, снимке екрана, објављивање и обавештења
  • Додаци — community проширења која додају нове акције: верзионисање, Sentry, обавештења у месенџерима

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође