Publikacja aplikacji iOS bez Maca: poradnik Expo i EAS
Autor: Mehdi Azizi
Zaktualizowano , 9 min
Na komputerze z Windows Expo i EAS skompilują twoją aplikację iOS i wyślą ją do Apple. Co działa bez Maca, co sprawia problemy i po co ci iPhone.
Czy można opublikować aplikację iOS bez Maca?
Tak. Możesz opublikować aplikację iOS bez Maca, jeśli budujesz ją w Expo i React Native. EAS Build kompiluje twoją aplikację na Macach w chmurze, które utrzymuje Expo, a EAS Submit wysyła ją potem do App Store Connect. Dokumentacja Expo mówi to jasno: EAS Submit działa na macOS, Linuksie i Windows, więc nie potrzebujesz Maca, żeby dostarczyć build iOS.
Potrzebujesz za to trzech rzeczy, których nic nie zastąpi: płatnego konta Apple Developer, iPhone'a do przetestowania aplikacji na prawdziwym urządzeniu i przeglądarki, żeby wypełnić kartę aplikacji w App Store Connect. Dalsza część poradnika opisuje, co działa na komputerze z Windows, co sprawia problemy i w jakiej kolejności to robić.
Wszystkie moje aplikacje iOS przechodzą przez ten sam łańcuch: Expo, EAS Build, a potem EAS Submit. W ten sposób trafiły do App Store Solys i TradaZen. Pracuję na Macu, ale żaden etap publikacji od niego nie zależy: buildy powstają w chmurze Expo, a wysyłka do Apple idzie z wiersza poleceń.
Jak Expo i EAS zastępują Maca
Żeby zrozumieć, co jest możliwe, trzeba wiedzieć, dlaczego Mac był obowiązkowy. Aplikację iOS trzeba skompilować w Xcode, narzędziu Apple, które działa tylko na macOS, i to w wersji na tyle nowej, żeby uniknąć odrzucenia ITMS-90725. Potem trzeba ją podpisać certyfikatem powiązanym z twoim kontem deweloperskim i wysłać do App Store Connect.
Expo dzieli tę pracę na trzy narzędzia:
- Expo i React Native: piszesz aplikację w JavaScripcie lub TypeScripcie, na dowolnym komputerze.
- EAS Build: uruchamiasz polecenie na swoim PC, kod trafia na Maca Expo, który kompiluje i podpisuje aplikację za ciebie. Dostajesz plik gotowy do instalacji albo wysyłki.
- EAS Submit: bierze ten build i wysyła go do App Store Connect. Po przetworzeniu przez Apple, które sprawdza na przykład ikonę (ITMS-90717), pojawia się on w TestFlight.
Mac nadal jest w tym łańcuchu. Po prostu nie jest już twój. Jeśli chcesz wiedzieć, dlaczego polecam ten stack początkującym, przeczytaj stronę React Native i Expo do aplikacji mobilnej.
Co da się zrobić na komputerze z Windows
Pisanie aplikacji
Cały development robisz na Windows bez ograniczeń: edytor (VS Code, Cursor), Node.js, terminal. Jeśli kodujesz z pomocą Claude albo ChatGPT, też nic się nie zmienia. Na ten temat przeczytaj jak stworzyć aplikację iOS z AI.
Podgląd aplikacji na iPhonie w trakcie kodowania
Na start aplikacja Expo Go zainstalowana na iPhonie skanuje kod QR wyświetlony w terminalu i ładuje twój projekt. Każda zmiana pojawia się na telefonie w kilka sekund. To idealne rozwiązanie na pierwsze ekrany. Od maja 2026 wersja Expo Go z App Store zostaje na SDK 54: utwórz projekt zgodny z tą wersją albo użyj eas go i TestFlight, jeśli chcesz nowszego SDK.
Expo Go ma jedno ograniczenie: zawiera tylko moduły natywne dostarczane przez Expo. Gdy tylko twoja aplikacja używa natywnej biblioteki, której tam nie ma, jak SDK RevenueCat do subskrypcji, potrzebujesz builda deweloperskiego: własnej wersji aplikacji skompilowanej przez EAS Build, którą instalujesz na iPhonie.
Instalacja builda na iPhonie bez App Store
EAS oferuje dystrybucję wewnętrzną. Rejestrujesz iPhone'a poleceniem eas device:create, a potem uruchamiasz build z dystrybucją internal. Dostajesz link do instalacji. Apple ogranicza tę metodę: jedno konto może tak dystrybuować aplikację na maksymalnie 100 iPhone'ów rocznie, a każde nowe urządzenie wymaga nowego builda albo ponownego podpisania. Dla ciebie i kilku bliskich osób to aż nadto.
Certyfikaty bez Xcode
Podpisywanie to coś, na czym najczęściej utykają początkujący na Macu, aż do błędu ITMS-90034 przy wysyłce. Z EAS logujesz się do konta Apple z wiersza poleceń, a narzędzie samo może wygenerować certyfikat dystrybucyjny i profil provisioningowy. Nigdy nie otwierasz Pęku kluczy.
Wysyłka aplikacji do Apple i publikacja
eas submit --platform ios wysyła twój build do App Store Connect. Możesz też połączyć oba etapy opcją --auto-submit w eas build. Cała reszta dzieje się w przeglądarce: karta w App Store, zrzuty ekranu, deklaracje prywatności, subskrypcje, TestFlight i wysyłka do recenzji. App Store Connect to aplikacja webowa, na Windows działa bez zarzutu.
Czego nie da się zrobić (albo jest trudniej) bez Maca
Lokalny symulator iOS
Symulator iOS jest częścią Xcode, więc nie działa na Windows. W praktyce to nic strasznego: iPhone sprawdza się w testach lepiej niż symulator. We wrześniu 2026 Expo zapowiedziało symulator iOS w chmurze, EAS Simulator, w chwili gdy to piszę wciąż z ograniczonym dostępem. Nie opieraj na nim swojej pracy, dopóki nie będzie dostępny dla wszystkich.
Debugowanie kodu natywnego
Jeśli crash pochodzi z kodu natywnego (Swift, Objective-C, źle skonfigurowana biblioteka), narzędzia diagnostyczne Apple są w Xcode. Bez Maca zależysz od logów builda w EAS i narzędzia takiego jak Sentry, które zbiera crashe z zainstalowanej aplikacji. Da się, ale wolniej. Dlatego przy pierwszej aplikacji warto trzymać się bibliotek zgodnych z Expo i aktywnie utrzymywanych, co przy okazji chroni przed odrzuceniem ITMS-90338 przy wysyłce.
Ręczne pisanie natywnych rozszerzeń
Widżety, rozszerzenia powiadomień, specyficzne natywne targety: w Expo to możliwe dzięki config pluginom, ale bez Xcode do podejrzenia wygenerowanego projektu każdy błąd kosztuje cię kolejny build. Przy pierwszej aplikacji odłóż te funkcje na później.
Lokalna kompilacja
Lokalne buildy EAS (opcja --local) nie są obsługiwane na Windows. Na PC twoje buildy iOS idą więc przez chmurę Expo. Darmowy plan EAS obejmuje ograniczoną liczbę buildów miesięcznie, z kolejką: sprawdź aktualne warunki na stronie z cennikiem Expo, zanim zaplanujesz intensywny tydzień pracy.
Konto Apple Developer: obowiązkowe, bez wyjątków
Żaden trik tego nie obejdzie, nawet Apple Developer Enterprise Program, przeznaczony dla wewnętrznych aplikacji dużych organizacji. Bez członkostwa w Apple Developer Program nie ma App Store Connect, TestFlight, dystrybucji wewnętrznej ani wysyłki do App Store. Członkostwo kosztuje 99 $ rocznie, pobierane w twojej walucie.
Dwie rady, zanim się zapiszesz:
- Dobrze wybierz między kontem indywidualnym a organizacją. Na koncie indywidualnym jako sprzedawca w App Store wyświetla się twoje imię i nazwisko. Na koncie organizacji widać nazwę twojej firmy, ale Apple wymaga wtedy numeru D-U-N-S i dłuższej weryfikacji.
- Zarezerwuj kilka dni. Zatwierdzenie konta nie zawsze jest natychmiastowe. Zapisz się, gdy tylko wiesz, że będziesz publikować, a nie dzień przed wysyłką.
Dlaczego naprawdę potrzebujesz iPhone'a do testów
Technicznie można opublikować aplikację iOS, nigdy nie mając jej w ręku. Zdecydowanie odradzam, Apple też: jego zasady recenzji (guideline 2.1) wymagają, żeby aplikacja przed wysyłką była przetestowana na urządzeniu pod kątem błędów i stabilności. A twoi użytkownicy będą mieli tylko to: prawdziwego iPhone'a.
Oto, co pokaże ci tylko prawdziwy iPhone:
- Prawdziwe pierwsze uruchomienie, bez serwera deweloperskiego: to tu chowają się crashe przy starcie.
- Zakupy w aplikacji w środowisku testowym, żeby sprawdzić, czy paywall pokazuje właściwe ceny i czy subskrypcja faktycznie odblokowuje aplikację.
- Powiadomienia, aparat, wibracje, uprawnienia, które gdzie indziej działają inaczej albo wcale.
- Prawdziwy układ ekranu: notch albo Dynamic Island, pasek główny, klawiatura zasłaniająca pole.
- Płynność, którą mocny komputer często maskuje.
Wystarczy w miarę nowy używany iPhone, pod warunkiem że działa na nim wersja iOS obsługiwana przez twoją wersję SDK Expo. Jeśli możesz, pożycz też iPhone'a o innym rozmiarze: aplikacja, która wygląda dobrze na dużym ekranie, może być ucięta na małym. Właśnie za to dostałem odrzucenie przy Solys, opisuję to w tekście dlaczego Apple odrzuca aplikację.
Bez Maca się da. Bez iPhone'a wysyłasz do Apple aplikację, której nigdy nie widziałeś w działaniu.
Kroki po kolei, z Windows
- Utwórz projekt poleceniem
npx create-expo-appi przetestuj pierwsze ekrany w Expo Go. - Zainstaluj EAS CLI poleceniem
npm install -g eas-cli, potemeas loginieas build:configure. - Zapisz się do Apple Developer Program, gdy tylko projekt nabierze kształtu.
- Zarejestruj iPhone'a poleceniem
eas device:createi uruchom build deweloperski. - Utwórz kartę aplikacji w App Store Connect, z tym samym bundle identifierem co w konfiguracji Expo.
- Uruchom build produkcyjny poleceniem
eas build --platform ios. - Wyślij go poleceniem
eas submit --platform ios, a potem przetestuj w TestFlight. Poradnik TestFlight do testowania aplikacji opisuje ten etap. - Wypełnij kartę i wyślij do recenzji z przeglądarki. Tekst promocyjny możesz potem zmieniać bez nowej wersji.
Na tym etapie często powtarzają się trzy pułapki. Numer builda musi rosnąć przy każdej wysyłce: włącz automatyczne zwiększanie w EAS i przestań o tym myśleć. Pytanie o szyfrowanie blokuje każdy build, dopóki na nie nie odpowiesz: możesz to zadeklarować raz na zawsze w konfiguracji aplikacji. A bundle identifier musi być wszędzie identyczny, inaczej EAS Submit nie znajdzie twojej aplikacji. Dalsze kroki, od karty aplikacji po zatwierdzenie, omawia strona publikacja aplikacji w App Store.
Opublikuj swoją pierwszą aplikację, bez Maca i bez błądzenia
Mac nie jest już prawdziwą przeszkodą. Prawdziwe przeszkody są gdzie indziej: wybrać aplikację, która ma szansę zarabiać, podpiąć działające subskrypcje, przygotować zgłoszenie, które Apple zaakceptuje. To właśnie obejmuje czteroetapowa ścieżka iOS Kit, do przejścia we własnym tempie. Do zgłoszenia Apple Review Kit zbiera moją checklistę przed wysyłką i notatki dla recenzenta. Na stronie głównej pokazuję, jak stworzyć aplikację mobilną bez zaczynania od zera z Expo i Claude Code, z Makiem czy bez.
Ostateczna decyzja o publikacji twojej aplikacji należy do Apple i żaden kit jej nie zagwarantuje. Mogę ci dać metodę, którą stosuję przy własnych aplikacjach.
Najczęściej zadawane pytania
Jak opublikować aplikację iOS bez Maca?
Z Expo i React Native twojego Maca zastępuje Mac utrzymywany przez Expo. Kodujesz na dowolnym komputerze, EAS Build kompiluje i podpisuje aplikację w chmurze, a EAS Submit wysyła ją do App Store Connect. Potrzebujesz też płatnego konta Apple Developer, przeglądarki do wypełnienia karty aplikacji i iPhone'a, żeby przetestować aplikację na prawdziwym urządzeniu.
Jakie są kroki publikacji aplikacji iOS z Windows?
Utwórz projekt w Expo, zainstaluj EAS CLI i zapisz się do Apple Developer Program. Zarejestruj iPhone'a, uruchom build deweloperski, a potem utwórz kartę w App Store Connect z tym samym bundle identifierem co w konfiguracji Expo. Następnie uruchom build produkcyjny, wyślij go przez EAS Submit i przetestuj w TestFlight, a na koniec wypełnij kartę i wyślij aplikację do recenzji z przeglądarki.
Ile kosztuje publikacja aplikacji w App Store?
Członkostwo w Apple Developer Program kosztuje 99 $ rocznie, pobierane w twojej walucie. Jest obowiązkowe: bez niego nie ma App Store Connect, TestFlight, dystrybucji wewnętrznej ani wysyłki do App Store. Po stronie Expo darmowy plan EAS obejmuje ograniczoną liczbę buildów miesięcznie, z kolejką: sprawdź aktualne warunki na stronie z cennikiem Expo.
Czy do publikacji aplikacji iOS bez Maca potrzebny jest iPhone?
Technicznie nie, ale zdecydowanie odradzam, Apple też: jego zasady recenzji (guideline 2.1) wymagają, żeby aplikacja przed wysyłką była przetestowana na urządzeniu pod kątem błędów i stabilności. Wystarczy w miarę nowy używany iPhone, pod warunkiem że działa na nim wersja iOS obsługiwana przez twoją wersję SDK Expo.
Jak przetestować aplikację iOS bez Maca?
Zainstaluj aplikację Expo Go na iPhonie: skanuje kod QR wyświetlony w terminalu i ładuje twój projekt, a każda zmiana jest widoczna w kilka sekund. Expo Go zawiera tylko moduły natywne dostarczane przez Expo. Gdy tylko twoja aplikacja używa natywnej biblioteki, której tam nie ma, jak SDK RevenueCat, potrzebujesz builda deweloperskiego skompilowanego przez EAS Build. Żeby przetestować finalny build, przeczytaj TestFlight do testowania aplikacji.
Jakie są ograniczenia tworzenia aplikacji iOS bez Maca?
Nie możesz używać lokalnego symulatora iOS: jest częścią Xcode, więc nie działa na Windows. Lokalne buildy EAS (--local) nie są obsługiwane na Windows: twoje buildy iOS idą przez chmurę Expo. Debugowanie kodu natywnego i ręczne pisanie natywnych rozszerzeń są możliwe, ale trudniejsze, bo narzędzia Apple są w Xcode.