Подготовка к публикации
Перед публикацией необходимо:
▸Иконки иsplash screen
Используйте react-native-bootsplash дляsplash screen и react-native-fast-image для кэширования иконок.
1npx react-native generate-bootsplash --platforms=android,ios
Настройка Android
▸Signing Keystore
1keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
▸gradle.properties
1MYAPP_RELEASE_STORE_FILE=my-release-key.keystore2MYAPP_RELEASE_KEY_ALIAS=my-key-alias3MYAPP_RELEASE_STORE_PASSWORD=*****4MYAPP_RELEASE_KEY_PASSWORD=*****
▸build.gradle (app)
1android {2 signingConfigs {3 release {4 storeFile file(MYAPP_RELEASE_STORE_FILE)5 storePassword MYAPP_RELEASE_STORE_PASSWORD6 keyAlias MYAPP_RELEASE_KEY_ALIAS7 keyPassword MYAPP_RELEASE_KEY_PASSWORD8 }9 }1011 buildTypes {12 release {13 signingConfig signingConfigs.release14 minifyEnabled true15 proguardFiles getDefaultProguardFile("proguard-android-optimize.txt")16 }17 }18}
Настройка iOS
▸Сертификаты и Provisioning Profile
Создайте App ID в Apple Developer
Создайте Distribution Certificate
Создайте Provisioning Profile
Настройте в Xcode
▸Fastlane для iOS
1# ios/fastlane/Fastfile2default_platform(:ios)34platform :ios do5 desc "Push a new beta build to TestFlight"6 lane :beta do7 build_app(8 workspace: "MyApp.xcworkspace",9 scheme: "MyApp",10 export_method: "app-store"11 )12 upload_to_testflight13 end1415 desc "Push a new release to App Store"16 lane :release do17 build_app(18 workspace: "MyApp.xcworkspace",19 scheme: "MyApp",20 export_method: "app-store"21 )22 upload_to_app_store(force: true)23 end24end
Сборка Android APK/AAB
▸Release сборка
1cd android2./gradlew assembleRelease3# AAB для Google Play4./gradlew bundleRelease
▸Fastlane для Android
1# android/fastlane/Fastfile2default_platform(:android)34platform :android do5 desc "Build and upload to Google Play"6 lane :deploy do7 gradle(8 task: "bundle",9 build_type: "Release",10 project_dir: "./"11 )12 upload_to_play_store(13 track: "internal"14 )15 end16end
Публикация в Google Play Console
▸Создание релиза
Перейдите в Google Play Console
Выберите приложение → Production → Create new release
Загрузите AAB-файл
Заполните описание, скриншоты, иконки
Укажитеprivacy policy URL
Отправьте на ревью
▸Типичные ошибки Google Play
Публикация в App Store Connect
▸Создание релиза
Откройте App Store Connect
Перейдите в приложение → App Store →iOS App
Загрузитеipa через Transporter или altool
Заполните метаданные: описание, ключевые слова, скриншоты
Настройте возрастной рейтинг и цену
Отправьте на ревью
▸Типичные ошибки App Store
Автоматизация публикации
▸GitHub Actions
1name: Release2on:3 push:4 tags: ['v*']56jobs:7 deploy:8 runs-on: ubuntu-latest9 steps:10 - uses: actions/checkout@v311 - name: Setup Node12 uses: actions/setup-node@v313 with:14 node-version: 1815 - name: Install dependencies16 run: npm ci17 - name: Build Android18 run: cd android && ./gradlew bundleRelease19 - name: Deploy to Play Store20 uses: r0adkll/upload-google-play@v121 with:22 serviceAccountJsonPlainText: ${{ secrets.PLAY_STORE_KEY }}23 packageName: com.myapp24 releaseFiles: android/app/build/outputs/bundle/release/app-release.aab25 track: production
Заключение
Публикация React Native приложения требует внимания к деталям: signing, versioning, метаданные и ревью-процессы. Автоматизация через Fastlane и CI/CD позволяет сосредоточиться на разработке, а не на рутинных задачах.