Jak opublikować grę w App Store bez Maca: nasza droga przez chmurę
Jak przenieśliśmy grę HTML5 z komputera z Windows do recenzji w App Store przez Capacitor, Codemagic i TestFlight oraz błędy, które kosztowały nas buildy.

Tak, da się opublikować grę w App Store bez Maca. Mac nadal jest potrzebny, ale się go wynajmuje: grę HTML5 opakowujesz w Capacitor na swoim PC, usługa w chmurze, na przykład Codemagic, kompiluje i podpisuje ją na własnych maszynach Mac, build trafia do App Store Connect i TestFlight, a listing, dane o prywatności i zgłoszenie kończysz w przeglądarce. Czego nie da się pominąć, to iPhone, bo ktoś musi zagrać w build, zanim zrobi to Apple.
Zrobiliśmy to z Windows, z własną grą akcji, Little Ninja Dash. Pierwszy udany build w chmurze trwał około sześciu minut, a aplikacja trafiła do App Review 19 października 2026, gdzie nasze zapisy pokazują status Waiting for Review. Ten przewodnik nie podaje wyniku recenzji. Fakty o Apple i Codemagic pochodzą z ich oficjalnych stron, odczytanych 30 października 2026. Reszta to to, co zapisaliśmy w notatkach, łącznie z częściami, które poszły źle.
Czego potrzebujesz, by opublikować w App Store bez Maca
- Członkostwo w Apple Developer Program: 99 USD za rok członkostwa. Zapisać się mogą osoby prywatne i organizacje. Organizacje potrzebują numeru D-U-N-S i publicznej strony internetowej.
- Konto Codemagic. Darmowy plan indywidualny daje 500 minut buildów macOS M2 miesięcznie i jeden build naraz; potem minuta Mac mini M2 kosztuje 0,095 USD. Darmowe minuty są dla pojedynczych użytkowników, nie dla zespołów.
- Prywatne repozytorium Git z projektem. Codemagic buduje z repozytorium, które podłączysz. Przy naszych szablonach repozytorium musi być prywatne: publiczne rozpowszechniałoby kod źródłowy, na co nie pozwala licencja.
- iPhone z aplikacją TestFlight, do testowania prawdziwego builda.
- Gra, która działa offline z własnego folderu i jest opakowana w Capacitor.
Od 28 kwietnia 2026 Apple wymaga, by aplikacje wysyłane do App Store Connect były budowane Xcode 26 lub nowszym i pakietem SDK iOS 26. Strona Capacitor dla iOS również podaje Xcode 26.0 lub nowszy i obsługę iOS 15 oraz nowszych. Xcode działa tylko na macOS, dlatego build odbywa się na maszynach Codemagic, a nie na Twoim PC.
Nasze edycje szablonów to gry przeglądarkowe. Na każdej stronie edycji buildy natywnych aplikacji są oznaczone jako nieobjęte pakietem. Jedna licencja obejmuje jeden produkt końcowy, a tę grę możesz opublikować, gdzie chcesz, w tym w App Store i Google Play. Nie wolno odsprzedawać samego szablonu. Jeśli planujesz pobierać opłaty od graczy, płatną aplikacją lub zakupami w aplikacji, najpierw zapytaj nas.
Przeglądaj szablony i to, co zawiera każda edycja
Krok 1: dodaj projekt iOS na Windows
Jeśli masz już projekt Capacitor dla Androida, zainstaluj @capacitor/ios i uruchom npx cap add ios. Tworzy to folder ios/, nawet na Windows. Nie otworzysz go lokalnie w Xcode, więc każda zmiana w projekcie natywnym to edycja pliku, którą sprawdzasz w następnym buildzie w chmurze.
- Ikona: jeden plik PNG 1024 na 1024 bez przezroczystości.
- Urządzenia i orientacja: nasza gra jest tylko na iPhone'a i tylko poziomo. Obsługa iPada dodaje zrzuty ekranu iPada i więcej układów do testowania.
- Szyfrowanie: pomoc Apple dotycząca zgodności eksportowej mówi, by zaktualizować Info.plist aplikacji, żeby nie odpowiadać na pytania o szyfrowanie przy każdym zgłoszeniu. Nasza gra używa tylko HTTPS systemu, więc ustawiliśmy ITSAppUsesNonExemptEncryption na false.
- Tylko pliki w pakiecie: gra jest w aplikacji i nigdy nie wczytuje naszej strony. Wytyczna 4.2 Apple wymaga aplikacji, które wykraczają poza przepakowaną stronę internetową.
Zaczynasz od szablonu? Velvet Pool przeszedł już przez Capacitor na Google Play, więc jego folder gry miał ten krok na Androidzie. Żaden z naszych szablonów nie przeszedł jeszcze recenzji App Store.
Zobacz Velvet Pool, szablon, który już opakowaliśmy w Capacitor
Krok 2: podpisywanie bez Maca i Keychain
Podpisywanie to część, która kiedyś wymagała Maca. Z kluczem API App Store Connect Codemagic może je wykonać w chmurze.
- W serwisie Apple Developer utwórz App ID (identyfikator pakietu) dla gry, z In-App Purchase, jeśli sprzedajesz coś w środku.
- W App Store Connect utwórz rekord aplikacji z tym identyfikatorem pakietu, SKU i językiem podstawowym.
- Wygeneruj klucz API App Store Connect. Dokumentacja Codemagic zaleca osobny klucz dla Codemagic. Dodaj go w ustawieniach integracji Codemagic i nigdy nie umieszczaj pliku klucza w repozytorium.
- Pozwól Codemagic wygenerować certyfikat dystrybucyjny i pobrać profil zaopatrzenia kluczem. Może pobrać certyfikaty, które wygenerował wcześniej, oraz profile z portalu Apple Developer.
Co poszło źle u nas
- Nasze pierwsze dwa buildy się nie udały, bo dla identyfikatora pakietu nie było jeszcze ustawionego profilu zaopatrzenia. Skonfiguruj certyfikat i profil przed pierwszym buildem.
- Profil zaimportowany w Codemagic bez nazwy referencyjnej nie działał, a przycisk zawodził po cichu. Zawsze wpisuj nazwę.
- Pierwsza konfiguracja klucza API nie powiodła się, bo wpisaliśmy zły Issuer ID. Skopiuj go i wklej ze strony kluczy Apple.
- Numery buildów muszą zawsze rosnąć. Zapytanie Apple o ostatni numer nie powiodło się, gdy poprzedni upload był jeszcze przetwarzany, więc przeszliśmy na numer wyprowadzany z zegara.
Krok 3: build w Codemagic i test w TestFlight
Przepis na build leży w pliku codemagic.yaml w repozytorium. Nasz instaluje zależności, przygotowuje pliki gry, synchronizuje je z projektem iOS poleceniem npx cap sync ios, stosuje profile i buduje IPA na maszynie Mac mini M2. Codemagic publikuje potem build w App Store Connect. Nasz pierwszy udany build trwał około sześciu minut, a późniejszy build produkcyjny poniżej czterech.
Niespodzianka: przy submit_to_testflight ustawionym na false Codemagic i tak wysłał build do App Store Connect. Dokumentacja Codemagic opisuje tę opcję jako wymaganą do dystrybucji do grup beta.
Limity TestFlight
- Testerzy wewnętrzni: do 100 użytkowników App Store Connect w Twoim zespole.
- Testerzy zewnętrzni: do 10 000, po zatwierdzeniu przez App Review Twojego pierwszego builda do testów zewnętrznych.
- Build jest dostępny testerom przez do 90 dni.
Zaproszenie testera wewnętrznego pozostaje oczekujące, dopóki nie zostanie zaakceptowane z e-maila TestFlight, a aplikacja nie pojawia się w TestFlight wcześniej. Sprawdź folder ze spamem.
Co iPhone znalazł, czego nie widział Windows
- Nagrane pliki audio się nie ładowały. W aplikacji fetch zwracał status 0 przy poprawnych bajtach, a nasz kod traktował to jako błąd. Zaakceptowanie statusu 0 dla plików lokalnych to naprawiło.
- Przyciski były ucięte w poziomie przy wycięciu ekranu. Przeprojektowaliśmy układ wyników i sprawdziliśmy każdy róg.
- Ekrany zakupów wspólne z Androidem wciąż mówiły Google Play. Na iOS mówią teraz App Store.
- Testowych zakupów zrobionych w TestFlight nie dało się zresetować, więc buildy testowe dostały przycisk symulujący brak zakupu. Buildy sklepowe go nie mają.
Krok 4: listing w App Store Connect, prywatność i ocena wiekowa
Reszta dzieje się w przeglądarce. To kolejność, która zadziałała u nas.
- Informacje o aplikacji: podtytuł, kategoria i kwestionariusz oceny wiekowej. Odpowiedz uczciwie za to, co gra naprawdę pokazuje.
- Cena i dostępność: cena i kraje. Dostępność dla Maca i Apple Vision Pro była domyślnie włączona. Wyłączyliśmy ją, bo nasza gra jest zrobiona pod dotyk.
- Prywatność aplikacji: Apple wymaga tych danych dla nowych aplikacji i aktualizacji, łącznie z praktykami partnerów zewnętrznych, których kod jest w aplikacji, na przykład sieci reklamowych i SDK. Wymagany jest publiczny adres polityki prywatności.
- Zakupy w aplikacji, jeśli są: nazwy, opisy, zrzut ekranu do recenzji i notatki dla recenzenta.
- Strona wersji: opis, słowa kluczowe, adresy wsparcia i marketingowe, prawa autorskie, build, notatki dla recenzenta i opcja wydania. Wybraliśmy wydanie ręczne.
- Zrzuty ekranu, potem każdy dodatkowy język z własnym tekstem i zrzutami.
- Zrzuty ekranu: wytyczna 2.3.3 mówi, że mają pokazywać aplikację w użyciu, a nie tylko grafikę tytułową ani ekran powitalny. Nasze to prawdziwe przechwycenia gry.
- Nazwa aplikacji: jedna nazwa, którą chcieliśmy, była już zajęta w App Store. Miej przygotowaną drugą nazwę albo nazwę z krótką częścią opisową.
- Notatki dla recenzenta: napisaliśmy, że gra jest kompletna w aplikacji, działa offline, nie wymaga logowania i gdzie znaleźć zakup oraz przycisk przywracania.
Przeczytaj nasze warunki licencji, zanim opublikujesz szablon jako aplikację
Krok 5: zgłoszenie i to, co sprawdza Apple
Zgłoszenie wymaga opublikowania odpowiedzi o prywatności aplikacji i potwierdzenia, że są prawdziwe, a potem wysłania szkicu zgłoszenia. Nasze poszło 19 października 2026 z wersją aplikacji i jej jednorazowym zakupem, a status zmienił się na Waiting for Review. Jeśli recenzja wróci z odrzuceniem, odpowiadasz przez Resolution Center, rzeczowo, z faktami, a nie ślepym ponownym zgłoszeniem.
Przy grze powstałej z szablonu liczą się trzy wytyczne. 4.2 wymaga czegoś więcej niż przepakowanej strony, więc trzymaj grę w aplikacji. 4.3(a) zabrania tworzenia kilku identyfikatorów pakietu tej samej aplikacji. 4.3(b) mówi, że Apple nie chce aplikacji, których nie da się odróżnić od tego, co jest już szeroko dostępne. Reskin musi zmienić zasady, treść i interfejs, a nie tylko grafikę.
Co zawierają nasze szablony i co możemy zrobić za Ciebie
Każdy szablon ma gotowy do hostingu folder gry, czytelny kod źródłowy, podręcznik i 6 miesięcy wsparcia albo 12 z rozszerzeniem. Wsparcie obejmuje instalację i korzystanie z dostarczonych plików oraz naprawianie powtarzalnych błędów. Opakowanie iOS, reklamy natywne, zakupy w aplikacji, konfiguracja builda w chmurze i listing w App Store to osobne usługi.
Jeśli wolisz nie konfigurować podpisywania i Codemagic sam, wyślij nam szablon, plan Twojego konta Apple i termin. Odpowiemy zakresem, ceną i czasem, zanim zaczniemy pracę. Nie publikujemy cennika prac na zamówienie.
Poproś o wycenę wprowadzenia gry do App Store
Najczęściej zadawane pytania
Czy mogę opublikować grę na iPhone'a bez własnego Maca?
Tak. Do builda nadal potrzebny jest macOS i Xcode, ale dostarcza je usługa w chmurze, na przykład Codemagic. Reszta, od App Store Connect po TestFlight, działa w przeglądarce i na iPhonie.
Ile kosztuje publikacja w App Store?
Apple Developer Program kosztuje 99 USD za rok członkostwa. Darmowy plan indywidualny Codemagic obejmuje 500 minut macOS M2 miesięcznie, a dodatkowe minuty są rozliczane za minutę. Dolicz licencję na grę i grafikę do sklepu.
Czy potrzebuję iPhone'a?
Do prawdziwych testów tak. Nasz iPhone znalazł brakujące audio, ucięte przyciski i błędne nazwy w sklepie, których nie pokazały build na Windows ani testy w przeglądarce.
Czy Apple zaakceptuje grę HTML5 opakowaną w aplikację?
Nie możemy tego obiecać. Wytyczna 4.2 wymaga czegoś więcej niż przepakowanej strony, więc dołączamy pełną grę do aplikacji, sprawiamy, że działa offline, i dajemy jej funkcje natywne. Wytyczna 4.3 dotyczy też reskinów.
Czy Wasze szablony zawierają build na iOS?
Nie. Nasze edycje to gry przeglądarkowe, a strony produktów mówią, że buildy natywnych aplikacji nie są w zestawie. Możesz pójść tą drogą sam albo zamówić ją u nas z wyceny.
