Сборка и публикация с EAS
Expo Go подходит для разработки, но пользователям нужно настоящее приложение со своей иконкой — файл для установки. EAS (Expo Application Services) — облачный сервис Expo, который собирает такие файлы на своих серверах. Mac с Xcode и Android Studio для этого не нужны.
Подготовка
Установите консольную утилиту EAS и войдите в бесплатный аккаунт Expo (его создают на сайте expo.dev):
npm install -g eas-cli
eas login
eas build:configureПоследняя команда привяжет проект к аккаунту и создаст в корне файл eas.json с профилями сборки.
Профили сборки
{
"build": {
"development": { "developmentClient": true, "distribution": "internal" },
"preview": { "distribution": "internal", "android": { "buildType": "apk" } },
"production": { "autoIncrement": true }
}
}| Профиль | Для чего |
|---|---|
development | Своя версия Expo Go с вашими родными модулями |
preview | Установка на телефоны тестировщиков, файл APK для Android |
production | Файл для отправки в магазин |
Строку "buildType": "apk" добавьте в preview сами — файл APK можно установить на Android напрямую.
Первая сборка
eas build --platform android --profile previewКод отправится на серверы Expo, а сборка займёт 10–20 минут. В конце терминал покажет ссылку и QR-код. Откройте её на Android-телефоне, скачайте и установите приложение — на рабочем столе появится «Блог» с вашей иконкой и заставкой. Для iOS сборку на устройства можно ставить только с платным аккаунтом Apple Developer.
Публикация в магазины
eas build --platform all --profile production
eas submit --platform android
eas submit --platform iosПервая команда собирает файлы для обоих магазинов, eas submit отправляет их в Google Play и App Store. Понадобятся аккаунты разработчика: Google Play — разовый взнос $25, Apple Developer Program — $99 в год. Затем приложение проходит проверку магазина.
Обновления без магазина
Если изменился только JavaScript-код, новую версию можно доставить без повторной проверки — через EAS Update:
npx expo install expo-updates
eas update:configure
eas update --channel production --message "Исправлен список статей"Команда eas update:configure подключает обновления к проекту; после неё один раз пересоберите приложение. Дальше при следующем запуске приложение само скачает обновлённый код. Изменения в app.json и новые родные модули так не доставить — для них нужна новая сборка.
Частая ошибка
Ставить в проект библиотеку с родным кодом, которой нет в Expo Go, и запускать её в Expo Go. Приложение упадёт с ошибкой о том, что родной модуль не найден. Для таких библиотек соберите development-сборку командой eas build --profile development и запускайте проект в ней, а не в Expo Go.