# Як опублікувати iOS-застосунок без Mac: Expo і EAS

> З Windows-ПК Expo та EAS збирають твій iOS-застосунок і надсилають його Apple. Що працює без Mac, що ні і навіщо тобі iPhone.

Оригінальна сторінка: [Як опублікувати iOS-застосунок без Mac: Expo і EAS](https://devoria.fr/uk/blog/publish-ios-app-without-mac-expo-eas)
Автор: [Mehdi Azizi](https://devoria.fr/uk/mehdi-azizi)
Опубліковано: 2026-09-23
Останнє оновлення змісту: 2026-10-09


## Чи можна опублікувати iOS-застосунок без Mac?

Так. Ти можеш опублікувати iOS-застосунок без Mac, якщо створюєш його на Expo і React Native. EAS Build компілює застосунок на Mac, які Expo тримає у хмарі, а EAS Submit потім надсилає його в App Store Connect. Документація Expo каже це прямо: EAS Submit працює на macOS, Linux і Windows, [тож Mac тобі не потрібен, щоб відправити iOS-білд](https://docs.expo.dev/submit/ios/).

Зате тобі потрібні три речі, які нічим не заміниш: [платний акаунт Apple Developer](https://devoria.fr/uk/blog/akaunt-rozrobnyka-apple-tsina), iPhone, щоб протестувати застосунок по-справжньому, і браузер, щоб заповнити сторінку в App Store Connect. Далі в цьому гайді: що працює з Windows-ПК, де виникають складнощі і в якому порядку все робити.

Усі мої iOS-застосунки проходять через цей ланцюжок: Expo, EAS Build, потім EAS Submit. Solys і TradaZen потрапили в App Store саме так. Я працюю на Mac, але жоден крок публікації від нього не залежить: білди збираються в хмарі Expo, а відправка в Apple йде через командний рядок.

## Як Expo і EAS замінюють Mac

Щоб зрозуміти, що можливо, треба знати, чому Mac був обов'язковим. iOS-застосунок має бути скомпільований у Xcode, інструменті Apple, який працює лише на macOS, і в достатньо свіжій версії, щоб уникнути відмови ITMS-90725. Потім його треба підписати сертифікатом, прив'язаним до твого акаунта розробника, і надіслати в App Store Connect.

Expo ділить цю роботу на три інструменти:

- **Expo і React Native**: ти пишеш застосунок на JavaScript або TypeScript, на будь-якому комп'ютері.
- **EAS Build**: ти запускаєш команду зі свого ПК, код їде на Mac від Expo, який компілює і підписує застосунок за тебе. Ти отримуєш файл, готовий до встановлення чи відправки.
- **[EAS Submit](https://devoria.fr/uk/blog/eas-submit-ios-publish-expo-app-store)**: бере цей білд і надсилає його в App Store Connect. Після обробки в Apple, яка перевіряє, наприклад, іконку (ITMS-90717), він з'являється в TestFlight.

Mac у ланцюжку нікуди не зник. Просто він більше не твій. Якщо хочеш зрозуміти, чому я раджу цей стек новачкам, почитай сторінку [React Native і Expo для мобільного застосунку](https://devoria.fr/uk/expertise/react-native-expo-mobile-app).

## Що можна робити з Windows-ПК

### Писати код застосунку

Уся розробка йде на Windows без обмежень: твій редактор (VS Code, Cursor), Node.js, термінал. Якщо пишеш код із допомогою Claude чи ChatGPT, теж нічого не змінюється. Про це почитай [як створити iOS-застосунок зі ШІ](https://devoria.fr/uk/blog/stvoryty-ios-zastosunok-z-shi-pastky-perevirky).

### Бачити застосунок на iPhone, поки пишеш код

Для старту застосунок Expo Go на твоєму iPhone сканує QR-код у терміналі і завантажує проєкт. Кожна зміна з'являється на телефоні за кілька секунд. Ідеально для перших екранів. З травня 2026 року [версія Expo Go в App Store залишається на SDK 54](https://expo.dev/changelog/expo-go-and-app-store-may-2026): створюй проєкт із сумісністю з нею або використовуй `eas go` і TestFlight для новішого SDK.

У Expo Go є обмеження: він містить лише нативні модулі, які дає Expo. Щойно застосунок використовує нативну бібліотеку, якої там немає, як-от SDK RevenueCat для підписок, тобі потрібен development build: твоя власна версія застосунку, скомпільована EAS Build, яку ти встановлюєш на iPhone.

### Встановити білд на iPhone без App Store

EAS пропонує внутрішню дистрибуцію. Ти реєструєш iPhone командою `eas device:create`, потім запускаєш білд із дистрибуцією `internal`. Отримуєш посилання на встановлення. Apple обмежує цей метод: [один акаунт може так поширювати застосунок щонайбільше на 100 iPhone на рік](https://docs.expo.dev/build/internal-distribution/), і кожен новий пристрій вимагає нового білда або нового підпису. Для тебе і кількох близьких цього з головою.

### Керувати сертифікатами без Xcode

Підпис найбільше гальмує новачків навіть на Mac, аж до помилки ITMS-90034 під час відправки. З EAS ти входиш в акаунт Apple з командного рядка, а інструмент [може сам згенерувати сертифікат дистрибуції і provisioning profile](https://docs.expo.dev/build/setup/). Ти взагалі не відкриваєш Keychain Access.

### Надіслати застосунок в Apple і опублікувати його

`eas submit --platform ios` надсилає білд в App Store Connect. Можна також об'єднати два кроки опцією `--auto-submit` у `eas build`. Усе інше відбувається в браузері: сторінка в App Store, [скриншоти](https://devoria.fr/uk/blog/rozmir-skrynshotiv-app-store-2026), декларації конфіденційності, підписки, TestFlight і відправка на рев'ю. App Store Connect це вебзастосунок, і на Windows він працює чудово.

## Що неможливо (або складніше) без Mac

### Локальний iOS-симулятор

iOS-симулятор входить у Xcode, тож на Windows він не працює. На практиці це не страшно: твій iPhone для тестів кращий за симулятор. У вересні 2026 року Expo анонсувала хмарний iOS-симулятор, [EAS Simulator](https://expo.dev/blog/build-ios-apps-on-windows-with-cloud-simulators), на момент написання ще в обмеженому доступі. Не будуй на ньому свій процес, поки він не відкритий для всіх.

### Налагодження нативного коду

Якщо краш іде з нативного коду (Swift, Objective-C, неправильно налаштована бібліотека), діагностичні інструменти Apple є в Xcode. Без Mac ти залежиш від логів білда EAS та інструмента на кшталт Sentry, який збирає краші встановленого застосунку. Це реально, але повільніше. Тому для першого застосунку тримайся бібліотек, сумісних з Expo і підтримуваних, це ще й убереже від відмови ITMS-90338 під час відправки.

### Писати нативні розширення вручну

Віджети, розширення сповіщень, специфічні нативні таргети: з Expo це можливо завдяки config plugins, але без Xcode, щоб переглянути згенерований проєкт, кожна помилка коштує ще одного білда. Для першого застосунку відклади ці функції на потім.

### Локальна компіляція

Локальні білди EAS (опція `--local`) [не підтримуються на Windows](https://docs.expo.dev/build-reference/local-builds/). Тож на ПК твої iOS-білди йдуть через хмару Expo. Безкоштовний план EAS включає обмежену кількість білдів на місяць, із чергою: перевір актуальні умови на сторінці тарифів Expo, перш ніж планувати тиждень інтенсивної роботи.

## Акаунт Apple Developer: обов'язковий, без винятків

Жодна хитрість цього не обійде, навіть Apple Developer Enterprise Program, призначена для внутрішніх застосунків великих організацій. Без [членства в Apple Developer Program](https://devoria.fr/uk/blog/apple-developer-subscription-renewal-cancellation) немає App Store Connect, немає TestFlight, немає внутрішньої дистрибуції і [немає відправки в App Store](https://developer.apple.com/support/compare-memberships/). Членство коштує [99 $ на рік](https://developer.apple.com/help/account/membership/programs-overview/), списаних у твоїй валюті.

Дві поради перед реєстрацією:

- **Добре обери між індивідуальним акаунтом і організацією.** В індивідуальному як продавець у App Store показується твоє ім'я. В організації це назва твоєї компанії, але тоді Apple вимагає номер D-U-N-S і довшу перевірку.
- **Заклади кілька днів.** Підтвердження акаунта не завжди миттєве. Реєструйся, щойно знаєш, що будеш публікувати, а не напередодні відправки.

## Чому тобі справді потрібен iPhone для тестів

Технічно можна опублікувати iOS-застосунок, жодного разу не потримавши його в руках. Я категорично не раджу, і Apple теж: її [правила рев'ю](https://developer.apple.com/app-store/review/guidelines/) (guideline 2.1) вимагають, щоб застосунок перед відправкою був протестований на пристрої на баги і стабільність. А в твоїх користувачів буде лише це: справжній iPhone.

Ось що показує лише справжній iPhone:

- **Справжній перший запуск**, без сервера розробки: саме тут ховаються краші під час старту.
- **Вбудовані покупки** в тестовому середовищі, щоб перевірити, що paywall показує правильні ціни і що підписка справді відкриває застосунок.
- **Сповіщення, камера, вібрація, дозволи**, які деінде поводяться інакше або не працюють зовсім.
- **Реальна верстка**: виріз або Dynamic Island, нижня панель, клавіатура, що перекриває поле.
- **Плавність**, яку потужний комп'ютер часто приховує.

Вистачить свіжого вживаного iPhone, якщо на ньому працює версія iOS, яку підтримує твоя версія Expo SDK. І якщо можеш, позич ще iPhone іншого розміру: застосунок, що нормально виглядає на великому екрані, може обрізатися на маленькому. Саме через це я отримав відмову для Solys, про що розповідаю в статті [чому Apple відхиляє застосунок](https://devoria.fr/uk/blog/vidmova-apple-app-store-prychyny).

> Без Mac це можливо. Без iPhone ти надсилаєш Apple застосунок, який ніколи не бачив у роботі.

## Кроки по порядку з Windows

1. **Створи проєкт** командою `npx create-expo-app` і протестуй перші екрани в Expo Go.
2. **Встанови EAS CLI** командою `npm install -g eas-cli`, потім `eas login` і `eas build:configure`.
3. **Зареєструйся в Apple Developer Program**, щойно проєкт почне набувати форми.
4. **Зареєструй iPhone** командою `eas device:create` і запусти development build.
5. **Створи сторінку застосунку** в App Store Connect з тим самим bundle identifier, що й у конфігурації Expo.
6. **Запусти продакшн-білд** командою `eas build --platform ios`.
7. **Надішли його** командою `eas submit --platform ios`, потім протестуй у TestFlight. Гайд [TestFlight для тестування застосунку](https://devoria.fr/uk/blog/testflight-testuvannya-zastosunku-iphone) детально описує цей крок.
8. **Заповни сторінку і [надішли на рев'ю](https://devoria.fr/uk/blog/waiting-for-review-app-store-connect-statuses)** з браузера. Promotional text потім можна змінювати без нової версії.

На цьому етапі часто трапляються три пастки. Номер білда має зростати з кожною відправкою: увімкни автоматичний інкремент в EAS, щоб більше про це не думати. Питання про шифрування блокує кожен білд, поки ти на нього не відповів: можна задекларувати це раз і назавжди в конфігурації застосунку. І bundle identifier має бути однаковим усюди, інакше EAS Submit не знайде твій застосунок. Що далі, від сторінки до схвалення, кожен крок описано на сторінці [публікація застосунку в App Store](https://devoria.fr/uk/expertise/publish-an-app-on-the-app-store).

## Опублікувати перший застосунок без Mac і не заблукати

Mac більше не головна перешкода. Справжні перешкоди в іншому: обрати застосунок, який має шанс заробляти, підключити підписки, що працюють, підготувати пакет, який Apple прийме. Саме це покриває чотириетапний шлях [iOS Kit](https://devoria.fr/uk/kits/ios), який можна проходити у своєму темпі. Для пакета на рев'ю [Apple Review Kit](https://devoria.fr/uk/kits/review-apple) збирає мій чекліст перед відправкою і нотатки для тестувальника. На головній сторінці показано, як [створити мобільний застосунок не з нуля](https://devoria.fr/uk) з Expo і Claude Code, з Mac чи без.

Остаточне рішення про публікацію твого застосунку лишається за Apple, і жоден кіт не може його гарантувати. Що я можу тобі дати, то це метод, який застосовую до своїх застосунків.

## Поширені запитання

### Як опублікувати iOS-застосунок без Mac?

З Expo і React Native твій Mac замінює Mac, який тримає Expo. Ти пишеш код на будь-якому комп'ютері, EAS Build компілює і підписує застосунок у хмарі, потім EAS Submit надсилає його в App Store Connect. Тобі також потрібні платний акаунт Apple Developer, браузер, щоб заповнити сторінку, і iPhone, щоб протестувати застосунок по-справжньому.

### Які кроки потрібні, щоб опублікувати iOS-застосунок з Windows?

Створи проєкт на Expo, встанови EAS CLI і зареєструйся в Apple Developer Program. Зареєструй iPhone, запусти development build, потім створи сторінку в App Store Connect з тим самим bundle identifier, що й у конфігурації Expo. Далі запусти продакшн-білд, надішли його через EAS Submit і протестуй у TestFlight, потім заповни сторінку і надішли застосунок на рев'ю з браузера.

### Скільки коштує опублікувати застосунок в App Store?

Членство в Apple Developer Program коштує 99 $ на рік, списаних у твоїй валюті. Воно обов'язкове: без нього немає ні App Store Connect, ні TestFlight, ні внутрішньої дистрибуції, ні відправки в App Store. З боку Expo безкоштовний план EAS включає обмежену кількість білдів на місяць, із чергою: перевір актуальні умови на сторінці тарифів Expo.

### Чи потрібен iPhone, щоб опублікувати iOS-застосунок без Mac?

Технічно ні, але я категорично не раджу, і Apple теж: її правила рев'ю (guideline 2.1) вимагають, щоб застосунок перед відправкою був протестований на пристрої на баги і стабільність. Вистачить свіжого вживаного iPhone, якщо на ньому працює версія iOS, яку підтримує твоя версія Expo SDK.

### Як протестувати iOS-застосунок без Mac?

Встанови Expo Go на iPhone: він сканує QR-код у терміналі і завантажує проєкт, а кожна зміна видна за кілька секунд. Expo Go містить лише нативні модулі, які дає Expo. Щойно застосунок використовує нативну бібліотеку, якої там немає, як-от SDK RevenueCat, тобі потрібен development build, скомпільований EAS Build. Щоб протестувати фінальний білд, почитай [TestFlight для тестування застосунку](https://devoria.fr/uk/blog/testflight-testuvannya-zastosunku-iphone).

### Які обмеження iOS-розробки без Mac?

Ти не можеш користуватися локальним iOS-симулятором: він входить у Xcode, тож на Windows не працює. Локальні білди EAS (`--local`) не підтримуються на Windows: твої iOS-білди йдуть через хмару Expo. Налагоджувати нативний код і писати нативні розширення вручну можна, але складніше, бо інструменти Apple є в Xcode.


## Твій проєкт

[iOS Kit](https://devoria.fr/uk/kits/ios): Створи застосунок для iPhone з Claude Code: стартовий код моїх застосунків, skills, що перевіряють його роботу, а також Apple Review Kit, App Store Screenshots Kit і ASO Kit. 129,99 €.
