Zpět

Fastlane z trochu jiného úhlu pohledu

6 minut čtení 19. 05. 2021

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

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:

  • platnost buildů aplikace v TestFlight
  • vypršení distribučních, vývojových i push certifikátů
  • vypršení provisioning profilů
  • vypršení vývojářského Apple účtu
  • nastalou změnu licenčních podmínek

Těžba informací

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í:

  • [#1] Přihlášení a výběr organizace – nutné pouze v případě, pokud patříte do více organizací.
  • [#2] Výpis údajů o vypršení vývojových provisioning profilů. Profily je také možné filtrovat např. jako app_store nebo in_house.
  • [#3] Výpis údajů o vypršení vývojových nebo produkčních push certifikátů. Produkční certifikáty můžeme získat jako production.
  • [#4] Výpis datumů vypršení členství v Apple Developer programu.
  • [#5] Přihlášení do AppStore Connect. Všimněte si použití jiného klienta z důvodu změny API. Pokud používáte stejný účet jako pro přihlášení do Apple Developer Portal (viz #1), můžete odebrat parametr use_portal a přihlásit se do obou portálů současně jediným příkazem. Avšak pozor! V případě přiřazení do více organizací vyžaduje přihlášení interaktivní výběr jedné z nich.
  • [#6] Výpis platností buildů v TestFlight s filtrací pouze na ty, které byly odeslány k externímu testování.

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.

Hlídací pes

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.

Závěr

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:

Rozšiřujeme tým, dej nám vědět!

Kariéra v B2A