Fastlane z trochu jiného úhlu pohledu

19. 5. 2021
fastlane apple2 1

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.

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

< Zpět na VÝPIS AKTUALIT

Další články z kategorie

23. 12. 2021
Úspěšný vstup do nového roku a svátky plné pohody, klidu a odpočinku přeje celý tým B2A!

Přejeme všem obchodním partnerům i dalším příznivcům vánoční svátky přesně takové, jaké máte nejraději. Plné pohody, odpočinku, dobrého jídla a společnosti těch nejbližších. Děkujeme za perfektní spolupráci v roce 2021 a přejeme šťastný a úspěšný vstup do roku 2022!

PŘEČÍST
6. 12. 2021
První krůčky k digitalizaci zdravotnictví probíhají i u nás v ČR

Dříve trávili novorozenci na oddělení týdny, někdy i měsíce. A rodiče v permanentním stresu pendlovali mezi nemocnicí, domovem a prací. A dnes. Dnes jsme pokročili tak daleko, že pokud to zdravotní stav alespoň trochu dovolí, miminko můžou rodiče po pár dnech vzít domů. Sžívat se a užívat si společné chvíle. A hlavně – být v […]

PŘEČÍST
6. 11. 2021
Proč cílíme na User Centric Approach

Zastáváme názor, že spokojení zaměstnanci jsou těmi největšími tahouny firemního rozvoje. Při vylaďování našich aplikací hrál proto „user centric approach„ vždy zásadní roli… Správně pojmenovat nám jej ale pomohla až společnost Apple. Místo zaměření na procesy, které ještě nefungují, se zaměřujeme právě na přání a priority konkrétních lidí na konkrétních pozicích a stavíme softwarové vrstvy, které přesně odpovídají […]

PŘEČÍST
30. 10. 2021
Petr Kubíček jako host v novém díle podcastu #salesbooster

O tom, proč je metoda „user centric approach“ základním stavebním kamenem úspěšné digitalizace nebo jak se za posledních sedm let změnit náš mindset v B2A, hovořil Petr Kubíček (CEO v B2A) s Petrem Sobotkou v novém díle podcastu SalesBooster. „S Petrem Sobotkou se znám už od dob vysokoškolského studia… a tak jsem jeho nabídku zúčastnit se jako […]

PŘEČÍST
30. 9. 2021
Tři fáze designování komponent – 3.díl

V této závěrečné fázi designování komponent se zaměříme na použitelnost CSS, zamyslíme se nad možným rozšířením o tabulkové direktivy a uvedeme si jejich hlavní výhody. Pro ty z vás, které předchozí dva díly minuly, uvádím níže odkazy k přiblížení tématu: Tři fáze designování komponent – 1.díl Tři fáze designování komponent – 2.díl CSS Vstup do […]

PŘEČÍST
1. 7. 2021
RabbitMQ - implementace message brokera

Message broker Message broker je software, který dovoluje, jak už název vypovídá, různým aplikacím či službám komunikovat a vyměňovat si mezi sebou informace. Tyto brokery využívají ke komunikaci různých protokolů (např. AMQP), což dovoluje aplikacím být na sobě nezávislé a komunikovat mezi sebou i přes to, že jsou napsány v různých jazycích či běží na rozdílných […]

PŘEČÍST
29. 4. 2021
Tři fáze designování komponent – 2.díl

V předchozím díle jsme si názorně ukázali design tabulkové komponenty tzv. “from scratch” jen za pomocí HTML a CSS. Markup jsme rozčlenili do komponent za pomocí BEM konvence pojmenování CSS tříd, a tímto jsme si předchystali půdu pro pokračování, které je uvedeno v tomto 2.dílu. Celá tato třídílná série je do jisté míry na sobě nezávislá […]

PŘEČÍST
17. 3. 2021
Přínosy digitalizace výroby pro oblast kvality

Společnost Intemac Solutions, s.r.o. - zabývající se poradenstvím českým firmám v oblasti implementace digitálních technologií - nás pozvala, abychom se zúčastnili prvního studiového webináře, který se konal 3.března 2021 v Kuřimi.  Webinář byl zaměřený na téma „Zlepšování kontroly kvality díky digitálním nástrojům“, a to konkrétně na přínosy digitalizace ve výrobních firmách. V rámci webináře jsme […]

PŘEČÍST
16. 3. 2021
Přínosy digitalizace výroby pro oblast kvality
PŘEČÍST
4. 3. 2021
Tři fáze designování komponent - 1.díl

Dnešní článek je první částí z třídílné série o designování komponent ve třech doporučených krocích (fázích). Nenechte si tedy ujít ani následující dvě části, které budou po vydání tohoto článku následovat, abyste mohli finální výsledek zhodnotit jako celek! Fáze první (CSS first approach) Dnes si na konkrétním příkladu tabulkového layoutu ukážeme první fázi, kterou by designování komponent […]

PŘEČÍST

Hledáme lidi s talentem a zapálením pro věc.

Zobrazit pracovní nabídky
menu-circlecross-circle
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram