Сборка и публикация: 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 Store | Apple 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 мгновенно, без повторной публикации.