Введение
Эта статья является частью серии, посвященной Expo, фреймворку для приложений React.
Если вы новичок в Expo, вам предлагается прочитать предыдущие статьи этой серии:
- Что такое Expo Framework (начало работы)
- Как установить платформу Expo для React в Linux
- Как создать приложение React с помощью Expo Cli в Linux
Настройте приложение с помощью app.json
В управляемом приложении у нас нет собственных проектов iOS или Android для изменения, это полностью управляется Expo. Поэтому, когда мы хотим изменить конфигурацию, например значок и изображение на главном экране, мы можем использовать app.json
.
Публикуйте и делитесь своим приложением
Чтобы поделиться приложением с вашей командой, мы можем запустить команду expo publish
из терминала, чтобы создать пакет JavaScript и загрузить все ресурсы в сети CDN. Подробнее об издании читайте здесь.
expo publish
Примечание. Запуск expo publish
загрузит исходный код приложения в CDN Expo (на базе CloudFront). Если вы предпочитаете размещать все на своих серверах, прочитайте, как разместить приложение на своих серверах.
Когда команда expo publish
выполняется, CLI предупреждает нас об оптимизации ресурсов. Мы можем запустить expo optimize
, чтобы оптимизировать ресурсы, и, если возможно, мы немного уменьшим наши ресурсы. Повторно опубликуйте эту команду позже, чтобы пожинать плоды. После публикации вам предоставляется постоянный URL-адрес, которым вы можете поделиться с коллегами, например https://expo.io/@author/app-nam
. Эта ссылка определяется именем пользователя учетной записи Expo и полем slug
в проекте app.json
. В iOS вы можете открывать только созданные вами проекты, если у вас нет приоритетного плана, чтобы ваши коллеги тоже могли открывать ваши проекты. Еще один способ открыть любое управляемое приложение, опубликованное в клиенте Expo, — создать пользовательскую сборку клиента iOS Expo. Подробнее читайте здесь.
expo optimize
Сборка и развертывание
iOS и Apple App Store
Перед запуском сборки необходимо установить bundleIdentifier
в app.json
.
...
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.example.app",
"icon": "./path/to/icon-ios.png"
},...
Теперь, когда мы запустим expo build:ios
, мы запустим сборку с сервисом сборки Expo. Нам будет предложено ввести учетные данные Apple Developer, а затем несколько раз нажать Enter, чтобы позволить Expo управлять сертификатом распространения, push-ключом и профилем подготовки. Вы также можете предоставить все это самостоятельно, что вам может понадобиться, если вы переместите существующее приложение в управляемый рабочий процесс.
expo build:ios
Примечание: команда expo build:[ios/android]
использует службу сборки Expo: если вы предпочитаете запускать сборки в своей инфраструктуре, прочитайте, как это сделать при создании автономных приложений на вашем C I.
Теперь вы можете использовать загрузчик приложений для загрузки приложения в App Store Connect, но нам проще выполнить expo upload:ios
. Оказавшись в App Store Connect, вам нужно будет выполнить некоторую ручную работу в их веб-интерфейсе. Узнайте больше о распространении в магазинах приложений.
expo upload:ios
Магазин Android и Google Play
Сборки Android следуют тому же процессу, что и сборки iOS, но мы ограничим необходимые нам разрешения только теми, которые мы используем в приложении, потому что разрешения Android более статичны, чем iOS. Эквивалентом bundleIdentifier
для iOS является package
для Android:
...
"android": {
"icon": "./path/to/icon-ios.png"
"package": "com.example.app",
"permission": ["READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"]
},...
Здесь мы создадим Android App Bundle ( .aab
), потому что нам нужен более компактный двоичный файл для Play Store:
expo build:android --type app-bundle --release-channel android
Если вы хотите установить бинарный файл на локальное устройство для тестирования, не используйте флаг --app-bundle
, вместо этого вы получите файл .apk
. Теперь нам нужно создать приложение в консоли Google Play и вручную загрузить его через веб-интерфейс. После первой загрузки приложения вы можете выполнять последующие загрузки с помощью команды expo upload:android
. Узнайте больше о распространении в магазинах приложений.
expo upload:android
Создание и распространение в Интернете
Запустите команду expo build:web
, затем загрузите каталог web-build
на любой хост, способный обслуживать статические файлы.
expo build:web
Обновить приложение
Как только приложение будет готово для тестирования или в магазинах, вы, вероятно, не захотите повторять процесс еще раз, чтобы внести несколько небольших изменений. Чтобы отправить обновление, нам просто нужно снова запустить expo publish
. Когда мы создавали наш пакет Android-приложения выше, мы указывали на определенный канал выпуска Android ( узнайте больше о каналах выпуска ). Чтобы опубликовать обновление в приложении Android, этот канал выпуска также должен быть обновлен. Чтобы определить правила загрузки и применения этих обновлений приложениями, прочитайте о настройке обновлений OTA.
Часто выпускаются обновления для Expo SDK. Если вы решите обновить приложение до более новой версии SDK, копии предыдущей версии продолжат работать корректно. Пользователи будут загружать последнюю копию, поддерживаемую их клиентом.
Вывод
В этом руководстве мы увидели, как публиковать приложения с помощью платформы Expo.
Здесь вы можете найти все статьи, посвященные ЭКСПО: