Сборка и публикация: EAS, App Store и Google Play

Финальный шаг: превращаем проект в настоящее приложение в магазинах и намечаем, куда расти дальше.

EAS Build — облачный сервис Expo, который собирает из вашего кода готовые установочные файлы для App Store и Google Play.

От проекта к приложению

Во время разработки приложение запускалось через Expo Go. Но в магазины нужен собранный файл: .ipa для iOS и .aab/.apk для Android. Раньше для сборки требовались Mac с Xcode и настроенная среда Android. Expo EAS делает сборку в облаке — даже без Mac можно собрать iOS-приложение.

Установка EAS CLI

npm install -g eas-cli
eas login

Настройка и сборка

Один раз настраиваем проект, затем запускаем сборку под нужную платформу.

eas build:configure
eas build --platform android
eas build --platform ios

Сборка идёт на серверах Expo; по готовности вы получаете ссылку на установочный файл. Можно собрать под обе платформы одной командой с --platform all.

Публикация в магазины

МагазинНужно
Google Playаккаунт разработчика (разовая плата), загрузить .aab
App StoreApple Developer (годовая подписка), пройти ревью

EAS умеет и загружать сборку в магазины командой eas submit. Учтите: Apple проверяет каждое приложение вручную (ревью занимает от нескольких часов до дней), Google — быстрее и в основном автоматически.

Обновления без новой сборки

Полезная возможность Expo — OTA-обновления (over-the-air): мелкие правки в JS-коде можно доставить пользователям мгновенно, без повторной публикации в магазине. Это работает для изменений в JS, но не для нативной части.

Чеклист перед публикацией

  • Иконка и splash-экран заданы в app.json.
  • Указаны имя, версия и описание приложения.
  • Приложение протестировано на реальном устройстве.
  • Запрашиваемые разрешения объяснены пользователю.

Считаем версию сборки — обычный JS

Перед каждой публикацией принято повышать номер версии. Простой пример инкремента (запускаемый):

function bump(version) {
  const parts = version.split(".").map(Number);
  parts[2] = parts[2] + 1; // повышаем patch-версию
  return parts.join(".");
}

console.log(bump("1.0.0"));
console.log(bump("1.2.9"));

Вывод:

1.0.1
1.2.10

Что дальше

  • Углубиться в навигацию: вложенные навигаторы, Drawer, deep links.
  • Управление состоянием на больших проектах: Context, Redux, Zustand.
  • Анимации (Reanimated), жесты, нативные модули.
  • Тестирование и оптимизация производительности списков.

Итог

  • В магазины нужен собранный файл; EAS Build собирает его в облаке, даже без Mac.
  • Google Play — разовая плата и быстрая проверка; App Store — подписка и ручное ревью.
  • OTA-обновления доставляют правки JS мгновенно, без повторной публикации.
Проверьте себя
1. Что делает Expo EAS Build?
AЗапускает приложение в Expo Go
BСобирает из кода установочные файлы для App Store и Google Play в облаке
CПубликует исходный код на GitHub
DЗаменяет навигацию
2. Чем отличается публикация в App Store от Google Play?
AApp Store бесплатен, а Google Play платный
BApp Store требует подписки и ручного ревью, Google Play — разовой платы и проверяет быстрее
CВ App Store нельзя публиковать RN-приложения
DОни полностью одинаковы
3. Что позволяют OTA-обновления Expo?
AМенять нативный код без сборки
BДоставлять правки JS-кода пользователям мгновенно, без новой публикации в магазине
CПубликовать приложение бесплатно навсегда
DУскорять интернет пользователя
Поддержать проект