Konečná cesta aplikácie do Appstore je sprevádzaná určitými krokmi, ktoré sú časom dosť repetívne a otravné. Čo všetko treba obetovať kým aplikáciu dostanete len na Testflight?

Old way
V prvom rade treba vybuildovať aplikáciu a archivovať. Samotná archivácia môže chvíľu trvať, záleží od komplexnosti aplikácie a použitých knižníc. Archív putuje do Xcode organizéra.

Odtiaľ sa opäť treba preklikať a distribuovať aplikáciu cez sériu next next next a konečne vytúžená obrazovka na nahratie build do Apple.

A tu už len dúfať, že upload prejde bez chýb.
Fastlane approach
Prvý spôsob je dosť otravný a dlho sa ťahá. Našťastie bolo zopár šikovných ľudí, ktorý sa brutálne naštvali a vytvorili nástroj Fastlane.

Ako funguje? Use case je nasledovný – otvorím príkazový riadok, napíšem simple príkaz a Fastlane urobí všetko podľa definovaných „lanes“ sám a automaticky. Napríklad, mám verziu, ktorú chcem dostať na Testflight. Jedným príkazom Fastlane vytvorí chanelog so zmenami, v okamihu zvýši čislo buildu, následne skompiluje kód, potom nahrá build do Appstore a počká na správu od Apple, či je build pripravený na testovanie. A to všetko len jedným príkazom !!!
No dobre, znie to super, ako to dostanem do projektu? Na stránke je v celku zrozumiteľný návod. Po inštalácii Fastlane stačí v root priečinku zavolať príkaz fastlane init.
Sprievodcu je potrebné si vyklikať. Po inicializácii Fastlane vytvorí priečinok „fastlane“ so štyrma súbormi. Dôležité sú Appfile, ktorý obsahuje konfiguračné premenné (team_id, apple_connect_id …) a Fastfile s definovaným správaním. Jedna z možných konfigurácii môže byť nasledujúca.
default_platform(:ios) ipa_destination = "../application.ipa" dsym_destination = "../application.app.dSYM.zip" platform :ios do desc "Push a new beta build to TestFlight" lane :beta do #sync_code_signing changelog = prompt(text: "Changelog: ") increment_build_number( build_number: latest_testflight_build_number + 1, xcodeproj: "app.xcworkspace" ) build_app(workspace: "app.xcworkspace", scheme: "app.xcworkspace", xcargs: "-allowProvisioningUpdates") upload_to_testflight(changelog: changelog) end after_all do |lane| File.delete(ipa_destination) File.delete(dsym_destination) end end
Po nastavení konfiguračného súboru a Fastfile je možné zavolaním príkazu fastlane beta spustiť celý proces. Po dokončení bude aplikácia pripravená na Testflight.
