Как происходит публикация приложения в App Store и Google Play?
Публикация приложения в App Store (iOS) и Google Play (Android) — это процесс, который требует подготовки, регистрации, сборки, тестирования и загрузки приложения в соответствующие магазины. В React Native проекте можно использовать как bare workflow, так и Expo для упрощения процесса. Ниже подробно описаны этапы публикации для обеих платформ.
Подготовка перед публикацией
-
**Завершение разработки
**-
Протестируй всё в release-режиме
-
Удали ненужные логи, дебаг-инструменты
-
Убедись в отсутствии console.log, alert, debugger
-
-
**Создание иконки и splash screen
**-
Используй react-native-splash-screen или expo-splash-screen
-
Иконка: 1024×1024 без прозрачности
-
Splash: 1242×2436 (или генерация через App Icon Generator)
-
-
**Обнови app.json или AndroidManifest.xml и Info.plist
**-
Название приложения
-
Версия: versionCode, versionName (Android) и CFBundleShortVersionString (iOS)
-
Разрешения (permissions)
-
Bundle ID (например, com.example.myapp)
-
Регистрация разработчика
Google Play
- Создать аккаунт Google Play Console: https://play.google.com/console
- Единоразовая плата: **$25
** - Подтвердить информацию об организации или физическом лице
App Store (Apple Developer)
- Создать Apple ID: https://developer.apple.com
-
Зарегистрироваться как разработчик: $99/год
-
Выбрать тип аккаунта: индивидуальный или компания
-
Настроить сертификаты и профили в **Apple Developer Center
**
Подготовка сборок
Android (Google Play)
- **Создание подписи (keystore)
**
keytool -genkeypair -v -keystore my-key.keystore -alias my-key-alias \\
\-keyalg RSA -keysize 2048 -validity 10000
Сохрани keystore, пароль и alias.
- **Настройка android/gradle.properties
**
MYAPP_UPLOAD_STORE_FILE=my-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=\*\*\*\*\*
MYAPP_UPLOAD_KEY_PASSWORD=\*\*\*\*\*
- **Сборка APK/AAB
**
cd android
./gradlew bundleRelease # для AAB (предпочтительно)
./gradlew assembleRelease # для APK
AAB рекомендуется, потому что Google Play оптимизирует пакет под устройство.
iOS (App Store)
-
**Настройка Xcode (для bare React Native)
** -
Открой ios/MyApp.xcworkspace в Xcode
-
Установи Bundle Identifier, Version, Build
-
Убедись, что подключены:
-
Apple Developer Team
-
Provisioning Profile (автоматический)
-
Подпись (Signing Certificate)
-
-
**Сборка
**
npx react-native run-ios --configuration Release
Или из Xcode: Product → Archive
-
**Отправка в App Store
** -
Через Xcode: Organizer → Distribute App
-
Или через Transporter (macOS app)
Использование Expo
Expo значительно упрощает процесс публикации.
- **Сборка приложения
**
npx expo export
npx eas build -p android # Android AAB
npx eas build -p ios # iOS Archive
- **Подключение аккаунтов
**
npx eas login
npx eas build:configure
-
**После сборки
** -
Файлы доступны в Expo Dashboard
-
Их можно загрузить вручную или автоматически через eas submit
npx eas submit -p android --latest
npx eas submit -p ios --latest
Загрузка в магазин
Google Play
-
**В Google Play Console:
**-
Создай новое приложение
-
Заполни: название, описание, скриншоты (7” и 10”), иконку, политику конфиденциальности, категории
-
Загрузи AAB-файл
-
Заполни контент-рейтинг и декларации (например, для сбора данных)
-
Создай релиз: выбери "production", укажи версию, описание изменений
-
Отправь на проверку (занимает от 1 до 7 дней)
-
-
**Обязательные ресурсы:
**-
Минимум 2 скриншота для каждого типа устройства (телефон, планшет)
-
Иконка 512×512
-
Feature graphic 1024×500
-
App Store
-
**В App Store Connect:
**-
Создай новое приложение: укажи Bundle ID, платформу, язык
-
Заполни метаданные: описание, что нового, ключевые слова, URL политики конфиденциальности
-
Добавь скриншоты (разные для iPhone 6.7", 6.1", iPad и т.д.)
-
Подгрузи сборку через Xcode/Transporter
-
Назначь сборку для релиза
-
Ответь на вопросы (использует ли приложение криптографию, собирает ли данные и т.д.)
-
Отправь на ревью
-
-
**Проверка может занять от 1 до 5 рабочих дней
**-
В случае отказа Apple присылает объяснение
-
После одобрения приложение появится в App Store
-
Дополнительные требования и рекомендации
-
Privacy Policy: Обязательно для обоих магазинов (хостинг на сайте, GitHub или Notion)
-
Push-уведомления: Необходимо указать в разрешениях и запросить у пользователя
-
App Tracking Transparency (ATT): Для iOS, если используется аналитика/реклама
-
Google Play Data Safety Section: Подробное описание, какие данные собираются и как используются
-
Crashlytics, Sentry, Analytics: Интеграция возможна до публикации
CI/CD автоматизация (опционально)
Можно использовать CI/CD-сервисы:
-
Fastlane — сборка, подпись, публикация, скриншоты
-
GitHub Actions, Bitrise, App Center — автоматизация всего процесса
-
Expo EAS — удобная альтернатива Fastlane, особенно при использовании Managed Workflow
Обновления приложения
Каждое обновление требует:
-
Увеличения версии: versionCode (Android), buildNumber (iOS)
-
Повторной загрузки файла AAB / Archive
-
Обновления описания изменений
-
Повторной модерации в магазине
Процесс публикации в App Store и Google Play требует внимательности и соблюдения всех технических и юридических требований. React Native и Expo предоставляют гибкие пути для реализации, а с практикой он становится предсказуемым и автоматизируемым.