Zřejmě všichni iOS vývojáři již slyšeli o nástroji Fastlane, který se využívá k automatizaci činností v průběhu celého vývoje nejen iOS aplikací. Jako první nás nejspíše napadne jejich generování, testování a vydávání. My se dnes ale podíváme na jiné - možná ne tolik rozšířené - využití, které tento nástroj rovněž poskytuje.
Fastlane umí podat pomocnou ruku v celém životním cyklu iOS aplikací - od nastavení verze a projektu, přes jejich samotné generování, spouštění testů a podpis certifikátem, až po odeslání na TestFlight a AppStore, a to včetně náhledů a popisu aplikace. Můžete si díky němu také poměrně výrazně usnadnit správu certifikátů a jejich sdílení mezi jednotlivými vývojáři.
To vše je možné jen díky tomu, že Fastlane obsahuje modul Spaceship, který používá neoficiální API přímo společnosti Apple, a má tak přístup téměř ke všemu, k čemu vývojář obvykle přistupuje přes patřičné portály (například Apple Developer Portal nebo AppStore Connect).
Co všechno tedy můžeme přes Fastlane zjistit? Tak například:
Pokud dokáže nástroj (který již s největší pravděpodobností při vývoji používáme) automatizovaně získat potřebné údaje o našich aplikacích, můžeme si ušetřit pravidelné návštěvy Apple portálů. Nyní se podíváme na to, jak tyto informace získáme. Následující kód je psaný v jazyce Ruby (jako Fastlane samotný) a vznikl za použití verzí Fastlane 2.182.0 a Ruby 2.7.1.
Dále si přiblížíme, co jednotlivé příkazy dělají:
Pro praktické využití samozřejmě bude potřeba kód upravit tak, abychom měli pro jednotlivé hodnoty i informace o kontextu (identifikátor aplikace, profilu, certifikátu, apod.). Nicméně jako ukázka možností by měl být dostačující 🙂 Pro více informací o dostupných funkcích nebo použitých strukturách je možné nahlédnout do oficiální dokumentace Fastlane, případně i přímo do zdrojového kódu.
Jakmile jsme schopní kontrolovat všechny důležité platnosti (za pomoci výše uvedených příkazů a s trochou naší vlastní tvůrčí programátorské činnosti), můžeme do hry zapojit například i CI a naši používanou komunikační platformu. V používaném CI můžeme poté nastavit třeba spouštění skriptu v pravidelném intervalu a informace posílat na odpovědné osoby do komunikační platformy. Na následujícím obrázku můžeme vidět příklad takového výstupu, který u nás posílá Jenkins do aplikace Slack.
Nástroj Fastlane je poměrně rozsáhlý a umožňuje vývojářům usnadnit si život nejen při vydávání aplikací. Jako příklad jsme si ukázali jeho využití třeba pro hlídání platnosti všech důležitých částí aplikace, aby nás už žádný takový termín nepřekvapil. A ve spojení s CI a komunikační platformou tak může být navíc pravidelně informovaný i celý tým 🙂
Zdrojový kód je dostupný i v našem GitHub repozitáři.
Zdroje: