TestFlight: ako otestovať iPhone aplikáciu pred odoslaním
Autor: Mehdi Azizi
Aktualizované , 8 min
Interní a externí testeri, beta review, verejný odkaz, buildy platné 90 dní: TestFlight jednoducho, so zoznamom kontrol pred odoslaním Apple.
Čo je TestFlight a na čo slúži?
TestFlight je služba od Apple, ktorá ti umožní nainštalovať aplikáciu na skutočné iPhony ešte pred jej vydaním v App Store. Nahráš build do App Store Connect, pozveš testerov a tí si ho nainštalujú cez aplikáciu TestFlight, ktorá je v App Store zadarmo. Testeri sú dvoch typov: interní, až 100 členov tvojho tímu, bez kontroly zo strany Apple; a externí, až 10 000 ľudí pozvaných e-mailom alebo verejným odkazom, po beta review tvojho prvého buildu. Každý build sa dá testovať 90 dní.
| Kritérium | Interní testeri | Externí testeri |
|---|---|---|
| Maximálny počet | 100 | 10 000 |
| Prístup k tvojmu účtu | Áno, s rolou | Nie |
| Pozvánka | Pridanie do internej skupiny | E-mail alebo verejný odkaz |
| Beta review od Apple | Žiadna | Pri prvom builde |
| Pre koho | Ty, spoločník, niekto blízky | Kamaráti, prví používatelia |
Na používanie TestFlightu potrebuješ platený Apple Developer účet: s bezplatným účtom služba dostupná nie je. Celý tento návod predpokladá, že ho máš, a to v rámci štandardného programu: podnikový program Apple prístup k TestFlightu nedáva.
Pri mojich appkách prechádza každý build odoslaný cez EAS Submit TestFlightom a mojím iPhonom, až potom ide na review. Práve tam nachádzam problémy, ktoré počas vývoja nevidno.
Ako nahrať build do TestFlightu
Build je skompilovaná a podpísaná verzia tvojej appky: ak je zle podpísaná, Apple ju pri nahrávaní odmietne s chybou ITMS-90034. Aby sa objavila v TestFlighte, musíš ju poslať do App Store Connect. S Expo je to eas build --platform ios a potom eas submit --platform ios, s dostatočne novým build image, aby si sa vyhol chybe ITMS-90725. Podľa dokumentácie Expo sa build objaví v TestFlighte po spracovaní na strane Apple, zvyčajne za 10 až 15 minút. Toto všetko zvládneš aj z PC: návod publikovať iOS appku bez Macu opisuje celý postup.
Napoprvé to často zasekne na dvoch veciach:
- Číslo buildu sa musí pri každom nahraní zmeniť. Apple odmietne dva buildy s rovnakým číslom pre tú istú verziu. V EAS zapni automatické zvyšovanie a už to nemusíš riešiť.
- Otázka o šifrovaní. Kým neodpovieš na otázku o používaní šifrovania, build zostane zablokovaný so stavom chýbajúcej súladnosti (Missing Compliance). Môžeš na ňu odpovedať zakaždým v App Store Connect, alebo to raz a navždy deklarovať v konfigurácii appky.
Interní testeri: tvoj tím, bez čakania
Interní testeri sú používatelia tvojho účtu App Store Connect s pridelenou rolou. Apple ich povoľuje až 100 a každý si môže nainštalovať appku na viac zariadení, až na 30.
Ich veľká výhoda: žiadna beta review. Hneď ako sa build spracuje bez automatickej chyby, napríklad ITMS-90717, pridáš ho do internej skupiny a je dostupný. Je to správna skupina pre teba a pre spoločníka alebo niekoho blízkeho, komu dáš prístup k účtu.
Ich obmedzenie: musíš ich pridať ako používateľov svojho účtu App Store Connect. Na neznámych ľudí sa to nehodí.
Externí testeri a beta review
Externí testeri nepotrebujú žiadny prístup k tvojmu účtu. Môžeš ich pozvať až 10 000, e-mailom alebo verejným odkazom. Je to správna skupina pre kamarátov, prvých používateľov či komunitu.
Na oplátku Apple build skontroluje, než im ho sprístupní. Keď pridáš prvý build danej verzie do externej skupiny, ide na beta review. Ďalšie buildy tej istej verzie nemusia nutne prejsť úplnou kontrolou.
Pred týmto odoslaním od teba App Store Connect pýta testovacie informácie:
- popis bety, ktorý testerom povie, na čo sa majú pozrieť;
- e-mailovú adresu pre spätnú väzbu;
- tvoje kontaktné údaje, aby ťa Apple mohol kontaktovať.
Beta review nie je review pre App Store. Build schválený v TestFlighte môže byť pri publikovaní stále zamietnutý.
Beta review overuje, že build dodržiava pravidlá, ale finálna review sa pozerá aj na tvoju stránku v obchode, predplatné, právne texty a celkový zážitok. Maj na pamäti klasické dôvody zamietnutia, ktoré opisujem v článku prečo Apple zamieta appky.
Pozývanie testerov cez verejný odkaz
Verejný odkaz je najjednoduchší spôsob, ako dať appku otestovať ľuďom, ktorých ešte nepoznáš. Tu je postup od Apple s anglickými názvami v rozhraní:
- V App Store Connect otvor svoju appku a potom záložku TestFlight.
- V časti External Testing vyber svoju externú skupinu.
- Klikni na Create Public Link.
- Zvoľ Open to Anyone, ak má byť odkaz otvorený pre všetkých, alebo Filter by Criteria, ak ho chceš obmedziť na určité zariadenia a verzie iOS.
- Ak chceš, nastav limit testerov cez Set Limit.
Odkaz potom zdieľaš, kde chceš: v správe, na sociálnej sieti, e-mailom. Človek si nainštaluje appku TestFlight, otvorí odkaz a prijme pozvánku.
Dve veci, ktoré treba vedieť, než ho rozšíriš ďalej:
- Nastav limit. Ak sa odkaz rozšíri viac, než si čakal, počet testerov budeš mať stále pod kontrolou.
- Testeri cez verejný odkaz sú anonymní. App Store Connect pri nich zobrazuje iba dátum inštalácie, relácie a pády. Ak chceš vedieť, kto čo testoval, radšej pozývaj e-mailom.
Ako dlho platí build v TestFlighte?
Build zostáva testerom dostupný 90 dní. Potom vyprší a testeri ho už neotvoria. Ak tvoja beta trvá dlhšie, jednoducho pred uplynutím lehoty nahraj nový build.
V praxi budeš nové buildy posielať oveľa častejšie: pri každej dôležitej oprave. Každý nový build pridaný do skupiny sa ponúkne tvojim testerom, ktorí si ho stiahnu v appke TestFlight.
Ako získať spätnú väzbu od testerov
TestFlight má zabudovaný systém spätnej väzby: tester urobí v tvojej appke snímku obrazovky, môže ju označiť poznámkami a pošle ti ju. Ak appka spadne, dostaneš správu o páde a tester môže doplniť kontext. Všetko nájdeš v App Store Connect.
Je to užitočné, ale na pochopenie konkrétneho pádu to nestačí. Do svojich appiek pridávam Sentry, ktorý nahlási chybu aj s riadkom kódu, ktorý ju spôsobil, a PostHog, ktorý ukáže, kde používatelia odchádzajú. Obe fungujú v TestFlight builde rovnako ako v produkcii.
Testovanie predplatného v TestFlighte
Ak tvoja appka predáva predplatné, v TestFlighte overíš, že naozaj funguje. Nákupy v TestFlight builde idú cez testovacie prostredie Apple: testerom sa nič nestrhne. Obnovenia sú zrýchlené: každé predplatné sa obnoví raz denne, najviac šesťkrát za týždeň, bez ohľadu na jeho skutočnú dĺžku.
Over minimálne, že zobrazené ceny sú správne, že nákup appku naozaj odomkne a že tlačidlo obnovenia nájde predplatné aj po preinštalovaní. Na správu predplatného v mojich appkách používam RevenueCat; celé nastavenie, od produktov v App Store Connect po paywall, je opísané na stránke predplatné in-app na iOS.
Čo musíš otestovať pred odoslaním do Apple
Toto je zoznam, ktorým prejdem pred každým odoslaním na review. Každý bod zodpovedá dôvodu zamietnutia alebo pádu, ktorému sa dá vyhnúť.
Prvé spustenie
- Vymaž appku, nainštaluj ju znova z TestFlightu a otvor ju. Presne to urobí reviewer.
- Prejdi celý onboarding, nič nepreskakuj.
- Odmietni každé povolenie (notifikácie, kamera, poloha) a over, že appka funguje ďalej.
Peniaze
- Paywall zobrazuje ceny, dĺžku a odkazy na podmienky používania a zásady ochrany súkromia.
- Nákup funguje, obnovenie tiež.
- Všetky nastavené produkty sú pre reviewera viditeľné: guideline 2.1 vyžaduje, aby boli nákupy v appke kompletné, viditeľné a funkčné.
Náročné podmienky
- Režim lietadla a pomalá sieť: jasná správa, nie biela obrazovka.
- Najmenší a najväčší iPhone, ktorý podporuješ: nič orezané, nič zakryté klávesnicou. Práve orezaná obrazovka na malom iPhone mi priniesla zamietnutie pri Solys.
- Dlhé texty, ak je appka preložená.
Podklady pre reviewera
- Ak appka vyžaduje prihlásenie, demo účet v poznámkach pre review a zapnutý backend. Guideline 2.1 to výslovne vyžaduje.
- Poznámky pre review, ktoré v dvoch vetách vysvetlia, čo appka robí a kde nájsť hlavnú funkciu.
Ak ti appku aj tak zamietnu, stránka aplikácia zamietnutá Apple vysvetľuje, ako odpovedať bez straty týždňa. A celkový prehľad publikovania, od stránky v obchode po vydanie, nájdeš v článku publikovať aplikáciu v App Store.
Testovacia tabuľka na vyplnenie pre tvoj build
Stiahni si tabuľku so 16 scenármi vo formáte CSV. Rozlišuje prípravu, krok, ktorý treba vykonať, očakávaný výsledok a pozorovaný dôkaz. Importuj ju do Numbers, Excelu alebo Google Sheets a potom vyplň verziu, zariadenie a výsledok každého testu.
Pri fiktívnom čitateľskom denníku nestačí „uložiť stranu“: zapíš stranu 24, appku úplne zavri, znova ju spusti a over, že hodnota tam je. Test, ktorý sa nevykonal, zostáva „Na otestovanie“. Ak tvoja appka nemá žiadne predplatné, pri nákupných scenároch uveď „Neaplikovateľné“ aj s týmto dôvodom.
Tabuľka je východisko, ktoré si prispôsobíš, nie certifikácia. Pozri si aj poznámky pre App Review a ďalšie bezplatné šablóny, aby si reviewerovi vysvetlil postup, ktorý si naozaj overil.
Z TestFlightu do App Store
TestFlight je krok, keď sa tvoja appka stáva skutočnou: beží na skutočnom iPhone v rukách skutočných ľudí. V postupe iOS Kit je to druhý krok: postaviť jadro appky a otestovať ju na svojom iPhone cez TestFlight, ešte predtým, ako napojíš predplatné a pripravíš publikovanie.
Po TestFlighte prichádza review od Apple: Apple Review Kit obsahuje môj checklist pred odoslaním a poznámky pre testera. Na úvodnej stránke nájdeš štyri kroky, ako vytvoriť mobilnú aplikáciu s Claude Code.
Nikto ti nemôže zaručiť, že Apple tvoju appku schváli: rozhoduje Apple.
Často kladené otázky
Ako otestovať iPhone appku cez TestFlight?
Nahraj build do App Store Connect a pridaj ho do skupiny testerov. S Expo ho skompiluješ cez EAS Build a odošleš cez EAS Submit: v TestFlighte sa objaví po spracovaní na strane Apple, podľa Expo zvyčajne za 10 až 15 minút. Testeri si ho nainštalujú cez appku TestFlight, ktorá je v App Store zadarmo. Potrebuješ platený Apple Developer účet.
Ako vytvoriť TestFlight odkaz na pozvanie testerov?
V App Store Connect otvor záložku TestFlight svojej appky, vyber skupinu v časti External Testing a klikni na Create Public Link. Zvoľ Open to Anyone alebo Filter by Criteria a potom nastav limit cez Set Limit. Testeri cez verejný odkaz zostávajú anonymní: ak chceš vedieť, kto čo testoval, radšej ich pozvi e-mailom.
Nahrádza beta review v TestFlighte review pre App Store?
Nie. Beta review overuje, že build dodržiava pravidlá, ale finálna review sa pozerá aj na tvoju stránku v obchode, vekové hodnotenie (age rating), predplatné, právne texty a celkový zážitok. Build schválený v TestFlighte teda môže byť pri publikovaní stále zamietnutý. Beta review spúšťajú iba externí testeri, pri prvom builde danej verzie: interní testeri žiadnou neprechádzajú.
Koľko testerov sa dá pozvať do TestFlightu?
Môžeš pozvať až 100 interných a až 10 000 externých testerov. Interní sú členovia tvojho účtu App Store Connect, bez beta review, a každý si môže appku nainštalovať až na 30 zariadení. Externých pozývaš e-mailom alebo verejným odkazom, po beta review prvého buildu. Každý build sa dá testovať 90 dní.
Dá sa v TestFlighte otestovať predplatné bez platenia?
Áno, nákupy v TestFlight builde idú cez testovacie prostredie Apple: testerom sa nič nestrhne. Obnovenia sú zrýchlené: každé predplatné sa obnoví raz denne, najviac šesťkrát za týždeň, bez ohľadu na jeho skutočnú dĺžku. Over minimálne zobrazené ceny, odomknutie appky a obnovenie po preinštalovaní. Celé nastavenie je opísané na stránke predplatné in-app na iOS.
Čo treba v TestFlighte skontrolovať pred odoslaním appky do Apple?
Preinštaluj appku z TestFlightu, tak ako to urobí reviewer, a prejdi celý onboarding. Odmietni každé povolenie, otestuj nákup a obnovenie a potom vyskúšaj režim lietadla, najmenší a najväčší iPhone, ktorý podporuješ. Ak appka vyžaduje prihlásenie, priprav demo účet v poznámkach pre review a nechaj zapnutý backend.