# Опубликовать iOS-приложение без Mac: Expo и EAS

> С ПК на Windows Expo и EAS собирают iOS-приложение и отправляют его в Apple. Что работает без Mac, где сложности и зачем всё же нужен iPhone.

Оригинальная страница: [Опубликовать iOS-приложение без Mac: Expo и EAS](https://devoria.fr/ru/blog/publish-ios-app-without-mac-expo-eas)
Автор: [Mehdi Azizi](https://devoria.fr/ru/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/ru/blog/akkaunt-razrabotchika-apple-cena), iPhone, чтобы протестировать приложение по-настоящему, и браузер, чтобы заполнить страницу в App Store Connect. Дальше в гайде: что работает с ПК на Windows, где возникают сложности и в каком порядке всё делать.

Все мои iOS-приложения проходят через одну цепочку: Expo, EAS Build, потом EAS Submit. Так в App Store попали Solys и TradaZen. Я работаю на 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/ru/blog/eas-submit-ios-publish-expo-app-store)**: берёт эту сборку и отправляет её в App Store Connect. После обработки на стороне Apple, где проверяется, например, иконка (ITMS-90717), она появляется в TestFlight.

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

## Что можно делать с ПК на Windows

### Писать код приложения

Вся разработка идёт на Windows без ограничений: твой редактор (VS Code, Cursor), Node.js, терминал. Если пишешь код с помощью Claude или ChatGPT, тоже ничего не меняется. Об этом читай [как создать iOS-приложение с помощью ИИ](https://devoria.fr/ru/blog/sozdat-prilozhenie-ios-s-ii-lovushki-proverki).

### Смотреть приложение на 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-сборка: твоя собственная версия приложения, собранная 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/). Связку ключей ты вообще не открываешь.

### Отправить приложение в Apple и опубликовать его

`eas submit --platform ios` отправляет сборку в App Store Connect. Можно объединить оба шага опцией `--auto-submit` у `eas build`. Всё остальное делается в браузере: страница в App Store, [скриншоты](https://devoria.fr/ru/blog/app-store-screenshot-sizes-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-плагины, но без 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/ru/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:

- **Реальный первый запуск**, без dev-сервера: именно тут прячутся краши при старте.
- **Встроенные покупки** в тестовом окружении, чтобы проверить, что пейвол показывает правильные цены, а подписка действительно открывает приложение.
- **Уведомления, камера, вибрация, разрешения**, которые в других местах ведут себя иначе или не работают вовсе.
- **Реальная вёрстка**: вырез или Dynamic Island, домашняя полоска, клавиатура, закрывающая поле.
- **Плавность**, которую мощный компьютер часто скрывает.

Хватит недавнего б/у iPhone, если на нём идёт версия iOS, которую поддерживает твоя версия Expo SDK. И если можешь, одолжи ещё iPhone другого размера: приложение, которое нормально смотрится на большом экране, может обрезаться на маленьком. Именно за это я получил отказ на Solys, история в статье [почему Apple отклоняет приложение](https://devoria.fr/ru/blog/otkaz-apple-app-store-prichiny).

> Без 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-сборку.
5. **Создай страницу приложения** в App Store Connect с тем же bundle identifier, что и в конфигурации Expo.
6. **Запусти production-сборку** командой `eas build --platform ios`.
7. **Отправь её** через `eas submit --platform ios`, потом протестируй в TestFlight. Этот шаг подробно разобран в гайде [TestFlight для тестирования приложения](https://devoria.fr/ru/blog/testflight-testirovanie-iphone-prilozheniya).
8. **Заполни страницу и [отправь на проверку](https://devoria.fr/ru/blog/waiting-for-review-app-store-connect-statuses)** из браузера. А рекламный текст потом можно менять без новой версии.

На этом этапе часто встречаются три ловушки. Номер сборки должен расти с каждой отправкой: включи автоинкремент в EAS и забудь об этом. Вопрос о шифровании блокирует каждую сборку, пока ты на него не ответишь: его можно задекларировать раз и навсегда в конфигурации приложения. И bundle identifier должен быть одинаковым везде, иначе EAS Submit не найдёт твоё приложение. Дальше, от страницы до одобрения, каждый шаг описан на странице [публикация приложения в App Store](https://devoria.fr/ru/expertise/publish-app-on-app-store).

## Опубликовать первое приложение без Mac и не заблудиться

Mac больше не главное препятствие. Настоящие препятствия в другом: выбрать приложение, у которого есть шанс приносить деньги, подключить работающие подписки, подготовить пакет, который Apple примет. Именно это покрывает путь из четырёх шагов в [iOS Kit](https://devoria.fr/ru/kits/ios), в своём темпе. Для пакета на проверку есть [Apple Review Kit](https://devoria.fr/ru/kits/review-apple): мой чек-лист перед отправкой и заметки для ревьюера. На главной показано, как [создать мобильное приложение не с нуля](https://devoria.fr/ru) с 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-сборку, потом создай страницу в App Store Connect с тем же bundle identifier, что и в конфигурации Expo. Затем запусти production-сборку, отправь её через 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-сборка, собранная EAS Build. Чтобы протестировать финальную сборку, читай [TestFlight для тестирования приложения](https://devoria.fr/ru/blog/testflight-testirovanie-iphone-prilozheniya).

### Какие ограничения у iOS-разработки без Mac?

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


## Твой проект

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