Fastlane este un instrument open source pentru automatizarea construirii, testării și publicării aplicațiilor iOS și Android. În loc să execute manual zeci de comenzi pentru semnare, construire și încărcare în magazin, dezvoltatorul descrie întregul proces în Fastfile și îl lansează cu o singură comandă. Conform Fastlane Docs, 2025, instrumentul este utilizat în peste 1,5 milioane de proiecte din întreaga lume. Fastlane combină instrumente pentru lucrul cu App Store Connect, Google Play Console și sistemele de semnare a codului.
Puncte principale
Fastlane este un instrument de automatizare a construcțiilor mobile, scris în Ruby și distribuit sub licența MIT. Acesta automatizează sarcinile de rutină ale dezvoltatorului mobil: construirea aplicației, lansarea testelor, crearea capturilor de ecran, semnarea codului și încărcarea fișierelor binare în App Store sau Google Play. În loc de 15–20 de comenzi manuale, dezvoltatorul lansează o singură comandă fastlane cu numele scenariului.
Fastlane funcționează ca un wrapper peste instrumentele Xcode (xcodebuild, xcrun) și Android SDK (gradlew, apksigner, bundletool), oferind o interfață unică pentru ambele platforme. Acest lucru este deosebit de valoros pentru echipele care întrețin versiunile iOS și Android ale aceleiași aplicații — aceleași fișiere Fastfile pot descrie construirea pentru ambele platforme cu diferențe minime în parametri.
Conform datelor GitHub, Fastlane are peste 39 de mii de stele și este standardul de automatizare în dezvoltarea mobilă. Instrumentul este susținut de comunitate și de compania Google — Fastlane este integrat în Firebase ca metodă recomandată de livrare a aplicațiilor Android în Google Play Console.
Arhitectura Fastlane este construită pe trei niveluri: actions (comenzi de bază), lanes (scenarii) și instrumente (utilități specializate). Actions sunt funcții separate Fastlane, fiecare executând o acțiune specifică: crearea unei capturi de ecran, construirea IPA, încărcarea în TestFlight. Lanes combină mai multe actions într-un scenariu secvențial descris în Fastfile.
Actions sunt blocurile constitutive ale Fastlane. Fiecare action primește parametri și execută o sarcină. De exemplu, action gym construiește aplicația iOS, scan lansează testele, pilot încarcă build-ul în TestFlight. Fastlane are peste 200 de actions încorporate, documentația pentru fiecare fiind disponibilă prin comanda fastlane action [nume].
Dacă actions încorporate nu sunt suficiente, dezvoltatorul poate crea un custom action în Ruby și îl poate conecta în Fastfile. Custom actions sunt distribuite prin pluginurile Fastlane, care sunt publicate în Rubygems și instalate prin fișierul FastfilePlugin în rădăcina proiectului.
Lane este un scenariu de automatizare denumit care combină mai multe actions într-o secvență logică. Lane poate apela alte lanes (private lanes), poate transmite parametri și gestiona erorile. Acest lucru permite construirea unei ierarhii de scenarii: lane de bază de construire, lane de deploy, lane de ciclu CI/CD complet.
Fastlane include un set de instrumente specializate, fiecare rezolvând o sarcină specifică de automatizare mobilă. Instrumentele sunt lansate ca actions în interiorul lanes sau direct din linia de comandă. Să examinăm patru instrumente cheie care acoperă nevoile principale de CI/CD pentru iOS și Android.
| Instrument | Destinație | Comandă |
|---|---|---|
| scan | Lansarea testelor Unit și UI pe simulatorul iOS | fastlane scan |
| gym | Construirea fișierului IPA sau APP pentru iOS | fastlane gym |
| match | Sincronizarea certificatelor și provisioning profiles prin Git | fastlane match |
| deliver | Încărcarea fișierului binar și a metadatelor în App Store Connect | fastlane deliver |
| snapshot | Generarea automată a capturilor de ecran pe diferite dispozitive | fastlane snapshot |
Scan simplifică lansarea testelor Xcode, selectând automat simulatorul potrivit și formatând raportul. Gym construiește aplicația cu flaguri optime de compilare și suportă exportOptions.plist pentru diferite tipuri de construire (development, adhoc, appstore). Deliver permite încărcarea nu doar a fișierului binar, ci și a capturilor de ecran, descrierii, versiunilor și prețurilor printr-un singur fișier de metadate.
Instrumentul Match merită o atenție deosebită — rezolvă problema stocării și sincronizării certificatelor iOS în echipă. Match criptează și stochează certificatele și provisioning profiles în depozitul Git, iar dezvoltatorii le obțin automat la lansarea fastlane match. Acest lucru elimină configurarea manuală a fiecărui post de lucru.
Snapshot este un instrument pentru crearea automată a capturilor de ecran ale aplicației mobile pe diferite dispozitive și limbi. Snapshot lansează teste UI pe simulatoarele iOS, făcând capturi de ecran la fiecare pas al testului. Rezultatele sunt salvate în directorul fastlane/screenshots și pot fi încărcate în App Store Connect prin deliver.
Pentru Android, screengrab execută o funcție similară pe emulatoarele Android. Ambele instrumente suportă localizarea — capturile de ecran sunt create pentru fiecare limbă, simplificând pregătirea materialelor pentru publicare în magazinele de aplicații multilingve.
Pentru proiectele iOS, Fastlane se configurează prin Gemfile (instalarea gem-ului fastlane) și Fastfile în directorul fastlane. Configurarea inițială se face prin comanda fastlane init, care creează structura de bază a directoarelor, solicită datele App Store Connect și generează șablonul Fastfile cu lanes principale.
Comanda cheie pentru iOS este fastlane match, care trebuie executată prima pentru a obține certificatele și provisioning profiles. După semnarea reușită, Fastlane poate construi aplicația (gym), lansa testele (scan) și încărca fișierul binar (pilot sau deliver).
# Fastfile pentru aplicația iOS
default_platform(:ios)
lane :build do
cocoapods
scan(scheme: 'App', devices: ['iPhone 15'])
gym(scheme: 'App', export_method: 'app-store')
end
lane :deploy do
match(type: 'appstore')
build
pilot(skip_waiting_for_build_processing: true)
slack(message: 'Versiunea nouă a fost încărcată în TestFlight')
end
Pentru lucrul cu TestFlight, utilizați action pilot — acesta încarcă IPA și gestionează testerii. Fastlane suportă upload_to_testflight (sinonim pentru pilot) și gestionează automat așteptarea procesării build-ului de către Apple, care poate dura între 5 și 30 de minute.
Pentru proiectele Android, Fastlane se configurează similar, dar în locul instrumentelor Xcode se utilizează Gradle și Android SDK. Fastlane pentru Android suportă construirea APK și AAB, semnarea prin apksigner sau jarsigner, lansarea testelor instrumentale și încărcarea în Google Play Console prin Supply action.
Diferența cheie — construirea Android nu necesită gestionarea certificatelor prin match (semnarea Android este gestionată prin Keystore, care este stocat separat). Fastlane pentru Android utilizează action gradle pentru lansarea oricăror sarcini Gradle și action supply pentru lucrul cu Google Play.
# Fastfile pentru aplicația Android
default_platform(:android)
lane :build do
gradle(task: 'clean assembleRelease')
gradle(task: 'testReleaseUnitTest')
end
lane :deploy do
build
supply(
track: 'internal',
aab: 'app/build/outputs/bundle/release/app-release.aab'
)
end
Pentru lucrul cu Google Play Console este necesar un cont de serviciu Google Cloud cu acces la API-ul Google Play. Fastlane primește cheia JSON a contului de serviciu prin variabila de mediu SUPPLY_JSON_KEY sau parametrul json_key în action supply. Track-ul de publicare poate fi internal, alpha, beta sau production.
Fastlane se integrează cu orice sisteme CI/CD care pot executa scripturi Ruby: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise și CircleCI. Integrarea constă în instalarea gem-ului fastlane și lansarea comenzii fastlane [lane_name] în etapa script a pipeline-ului.
Pentru CI/CD este importantă configurarea variabilelor de mediu pentru stocarea datelor sensibile: MATCH_PASSWORD (parola de criptare a certificatelor), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (parola Apple ID). În Travis CI variabilele sunt criptate prin travis encrypt, în GitHub Actions — prin Secrets repository.
Practica recomandată — utilizarea fastlane match în CI/CD cu flagul readonly pentru a preveni modificările accidentale în depozitul de certificate. Pentru Android, utilizați Keystore codat în Base64 și salvat în variabila de mediu, care este decriptat și salvat într-un fișier temporar în etapa before_install.
Fastlane Match este un instrument pentru automatizarea gestionării certificatelor iOS și provisioning profiles, una dintre cele mai valoroase funcții Fastlane pentru echipe. Match creează un depozit Git criptat (sau utilizează unul existent) în care stochează toate certificatele și profilele, sincronizându-le între dezvoltatori și serverele CI/CD.
Match suportă cinci tipuri de profiluri: development, adhoc, appstore, enterprise și developer_id. Fiecare tip este stocat într-un director separat în interiorul depozitului. Comanda fastlane match development instalează certificatele development pe mașina locală, iar fastlane match appstore — profilele App Store pentru construirea pe CI.
# Utilizarea Match în Fastfile
lane :setup_signing do
match(
type: 'appstore',
readonly: true,
git_branch: 'main'
)
end
lane :update_profiles do
match(
type: 'development',
force: true,
app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
)
end
Securitatea Match este asigurată prin criptarea tuturor fișierelor înainte de commit în Git. Parola de criptare este setată prin variabila de mediu MATCH_PASSWORD și trebuie să fie aceeași pentru toți membrii echipei. Match utilizează OpenSSL pentru criptare și nu stochează parola în formă deschisă în depozit.
Întrebări frecvente
Fastlane este un instrument de automatizare open source pentru aplicațiile iOS și Android. Acesta automatizează construirea, testarea, semnarea codului și livrarea în App Store și Google Play printr-un singur fișier de configurare Fastfile și un set de instrumente încorporate.
Principalele instrumente Fastlane: scan (teste), gym (construire iOS), match (certificate), deliver (App Store), pilot (TestFlight), snapshot (capturi de ecran), supply (Google Play) și frameit (rame pentru capturi de ecran). Fiecare instrument este disponibil ca action în interiorul lane sau din linia de comandă.
Instalați gem fastlane, executați fastlane init în rădăcina proiectului. Configurați Fastfile cu lanes pentru construire (gym) și teste (scan). Configurați Match pentru gestionarea certificatelor prin depozitul Git. Adăugați lane de deploy cu pilot sau deliver pentru încărcarea în App Store Connect.
Executați fastlane init cu specificarea package name. Utilizați gradle action pentru lansarea sarcinilor Gradle (assembleRelease, testReleaseUnitTest). Configurați Keystore prin variabilele de mediu. Utilizați supply action pentru încărcarea AAB sau APK în Google Play Console pe track-ul dorit.
Instalați gem fastlane pe serverul CI/CD și adăugați comanda fastlane [lane_name] în etapa script a pipeline-ului. Configurați variabilele de mediu FASTLANE_USER, FASTLANE_PASSWORD și MATCH_PASSWORD în variabilele secrete CI/CD. Utilizați match readonly pentru CI pentru a evita modificările accidentale ale certificatelor.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și