Publikowanie wpisu w App Store bez fastlane
deliver i supply z fastlane wysyłają metadane, zrzuty ekranu i binarkę do obu sklepów z linii poleceń — za darmo, open source, zawsze aktualne, jeśli podłączysz je do CI. Koszt jest taki, że ktoś musi zbudować i utrzymywać ten pipeline: Ruby, Xcode lub Gradle, Fastfile i konserwację testów UI. Jeśli nie chcesz prowadzić pipeline'u, drogi bez kodu to konsole webowe sklepów, API sklepów bezpośrednio albo narzędzie, które przygotuje wpis za ciebie. Mokbi to droga bez kodu, która faktycznie publikuje: projektuje twoje zrzuty ekranu i grafikę promocyjną, pisze i tłumaczy cały wpis na 50 języków, a następnie wysyła go prosto do Google Play przez Play Developer API, jednocześnie przygotowując wersję App Store w App Store Connect, gotową do wysłania przez ciebie. Bez Ruby, bez Xcode, bez testów UI.fastlane jest domyślną odpowiedzią nie bez powodu. To darmowy zestaw narzędzi na licencji MIT, a jego akcja deliver (alias upload_to_app_store) wysyła zrzuty ekranu, filmy App Preview, metadane i binarkę do App Store Connect jednym poleceniem. Po stronie Android supply (alias upload_to_play_store) robi to samo dla Google Play — metadane, zrzuty ekranu i APK lub app bundle. Uruchom jedno z nich z CI, a twój wpis regeneruje się przy każdym wydaniu, nigdy nie odbiegając od aplikacji.
Uczciwe pytanie nie brzmi więc: „czy fastlane jest dobry” — bo jest. Pytanie brzmi, czy chcesz być właścicielem pipeline'u, który go takim czyni, czy wolisz zaktualizować wpis bez niego.
Co właściwie robią deliver i supply
Oba są nakładkami na oficjalne API sklepów. Za kulisami fastlane wykonuje te same wywołania, które mógłbyś wykonać sam.
deliver(iOS). Wysyła nazwę aplikacji, opis, słowa kluczowe, notatki wydania, adresy URL, kategorie i informacje do recenzji, a także zlokalizowane zrzuty ekranu i filmy podglądowe. Binarka idzie przeziTMSTransporterApple; metadane przez App Store Connect API. Może też zgłosić do recenzji po przesłaniu.supply(Android). Wysyła metadane, zrzuty ekranu i APK lub AAB do Google Play, wybierając ścieżkę (track) i promując buildy. Uważaj na pułapkę: przesłane zrzuty ekranu zastępują istniejące dla danej lokalizacji, zamiast je uzupełniać.
Oba uwierzytelniają się kluczami API — klucz App Store Connect API dla Apple, JSON konta serwisowego dla Google — więc raz skonfigurowane działają bez nadzoru w CI. To cała siła tego rozwiązania: metadane i zrzuty ekranu jako kod, wersjonowane w repozytorium, wysyłane przy każdym buildzie.
Prawdziwy koszt fastlane
fastlane jest darmowy w instalacji i uruchomieniu. Koszt to konfiguracja i utrzymanie, płacone czasem inżynierskim.
- Środowisko do utrzymania. fastlane to zestaw narzędzi w Ruby (Ruby 3.0+), zwykle zarządzany przez Bundlera. Praca nad iOS wymaga Xcode na Macu; Android potrzebuje strony Gradle. To realna maszyneria do zainstalowania i utrzymania w aktualnej wersji.
- Pliki konfiguracyjne do napisania.
Fastfiledefiniuje twoje lane'y;Deliverfilelub folder metadanych dla Androida trzyma szczegóły wpisu. Dopracowanie pierwszej działającej wersji zajmuje zwykle dzień lub dwa. - CI do postawienia. Automatyzacja opłaca się dopiero w pipeline, co oznacza klucze API, sekrety podpisywania i skonfigurowany, utrzymywany w zielonym stanie build runner.
- Utrzymanie przechwytywania zrzutów ekranu, jeśli z niego korzystasz.
snapshotz fastlane napędza testy UI w symulatorze, aby przechwycić zrzuty ekranu dla każdej lokalizacji. Te testy są kruche: częsty scenariusz to działający dobrze przez kilka miesięcy setup, który potem psuje zmiana w UI, a kod testu trzeba przeprowadzić na nowo przez nowe stany. snapshot domyślnie ponawia niestabilne przebiegi, co maskuje niedeterminizm wynikający z sieci i danych, zamiast go naprawiać. A surowy wynik nie ma podpisów ani teł — zespoły i tak często kończą projekt w osobnym narzędziu.
Nic z tego nie jest zarzutem wobec narzędzia. To uczciwy kompromis: fastlane zamienia powtarzalny ręczny obowiązek w kod, a w zamian ty utrzymujesz kod. Dla zespołu wydającego cotygodniowe release'y z inżynierem odpowiedzialnym za automatyzację wydań to dobry układ. Dla solo twórcy albo PM-a, który aktualizuje wpis kilka razy w roku, pipeline może kosztować więcej w utrzymaniu, niż oszczędza.
Aktualizacja wpisu bez fastlane
Jeśli pomijasz fastlane, wciąż masz trzy sposoby, żeby umieścić metadane i zrzuty ekranu w sklepach.
1. Konsole webowe sklepów
Najprostsza droga. W App Store Connect edytujesz każdą lokalizację ręcznie i wrzucasz zrzuty ekranu do slotów odpowiednich rozmiarów wyświetlania; w Google Play Console edytujesz wpis sklepowy dla każdego języka i przesyłasz tam zrzuty ekranu. Bez kodu, bez kluczy, nic do utrzymania — klikasz i wskazujesz. Minusem jest to, że wszystko jest w pełni ręczne, a robienie tego dla wielu lokalizacji ekran po ekranie jest wolne i podatne na błędy. Dobre dla jednego czy dwóch języków; bolesne przy 20.
2. API sklepów, bezpośrednio
Oba sklepy udostępniają te same API, które wywołuje fastlane, więc możesz się do nich odwoływać skryptami bez przyjmowania stosu Ruby fastlane. App Store Connect API od Apple to REST API uwierzytelniane krótkotrwałym JWT (ES256, podpisanym twoim kluczem), z endpointami do tworzenia zestawów zrzutów ekranu, rezerwowania i przesyłania bajtów obrazu oraz łatania metadanych. Play Developer API Google używa modelu "edits" — otwierasz edycję, zmieniasz wpisy i obrazy, a potem ją zatwierdzasz (commit). Daje ci to pełną kontrolę i pasuje do niestandardowego, wewnętrznego dashboardu, ale teraz sam piszesz i utrzymujesz tę integrację. To mniejsze zobowiązanie niż pełny pipeline fastlane, ale nie zerowe.
3. Zarządzane narzędzie, które przygotowuje wpis
Druga droga bez kodu to narzędzie, które tworzy wpis za ciebie, więc jedyne, co pozostaje, to umieścić go w sklepie. Tu odwraca się bilans: zamiast inżyniera będącego właścicielem pipeline'u, PM albo designer jest właścicielem wpisu bezpośrednio w przeglądarce. Wymieniasz automatyzację CI na brak potrzeby posiadania inżyniera w ogóle.
Gdzie pasuje Mokbi — szczerze
Mokbi nie próbuje zastąpić historii CI fastlane. Jeśli twoim celem są zrzuty ekranu regenerujące się przy każdym buildzie bez udziału człowieka, pipeline fastlane jest właściwym narzędziem i jest darmowy. My jesteśmy dla innego przypadku: osoby, która chce wysłać dopracowany wpis bez dotykania Ruby, Xcode, Fastfile czy testu UI.
W przeglądarce projektujesz zrzuty ekranu, tworzysz tekst sklepowy i tłumaczysz cały wpis na 50 języków — bez symulatora, bez CI, bez kodu. Designer lub PM może być właścicielem całej powierzchni marketingowej od początku do końca.
Oto ostatni etap, który obejmuje Mokbi. Projektuje zrzuty ekranu i grafikę promocyjną, pisze i tłumaczy cały wpis na 50 języków, a następnie wysyła wynik prosto do Google Play przez Play Developer API i przygotowuje wersję App Store w App Store Connect, gotową do wysłania — to ostateczne zatwierdzenie i recenzja zależą od Apple, to ich zasada, nie luka po naszej stronie. Te same endpointy, których wywołuje fastlane, minus pipeline.
Co wybrać w danej sytuacji
- Wydajesz co tydzień, masz inżyniera, chcesz zerowego rozjazdu? fastlane. Jest darmowy, zautomatyzowany i trzyma zrzuty ekranu oraz metadane w krok z aplikacją. Nic tu tego nie pobije.
- Aktualizujesz wpis kilka razy w roku, bez CI do dyspozycji? Konsola webowa albo narzędzie, które przygotuje wpis. Utrzymanie pipeline'u nie opłaca się przy takim tempie.
- Potrzebujesz kontroli programistycznej, ale nie stosu fastlane? Wywołuj bezpośrednio App Store Connect API oraz Play Developer API.
- Chcesz, żeby designer lub PM był właścicielem wpisu w wielu językach? Twórz tekst, tłumacz i publikuj z przeglądarki — Mokbi wysyła do Google Play i przygotowuje wersję App Store gotową do wysłania przez ciebie.
fastlane zasługuje na swoje miejsce jako darmowy, zautomatyzowany dotychczasowy standard. Droga bez kodu nie jest "lepsza" — to inny kompromis: rezygnujesz z automatyzacji CI, a w zamian nikt nie musi budować ani doglądać pipeline'u, żeby zaktualizować wpis.