Запустите сборку релиза React Native iOS из терминала

Я пытаюсь запустить сборку релиза прямо из терминала, и я не нашел возможности сделать это.

От XCode требуется следующее:

Product -> Scheme -> Edit Scheme (cmd +<), убедитесь, что вы находитесь на вкладке Run сбоку, и установите выпадающий список Build Configuration.

http://facebook.github.io/react-native/docs/running-on-device-ios.html

Есть любой вариант, доступный из react-native-cli сделать то же самое? Что-то вроде react-native run-ios -configuration Release?

Моя цель состоит в том, чтобы создать сборку, которая не требует запуска сервера для предоставления, например, команде QA.

6 ответов

Решение

Я сделал пиар в проекте React Native, чтобы разрешить эту функцию. PR можно проверить здесь: https://github.com/facebook/react-native/commit/ca7cbdee858e84c4a74a2d9c7be151f5cfdcfbfe

Таким образом, в будущем, чтобы запустить сборку релиза из терминала, вам нужно всего лишь набрать следующую команду: react-native run-ios --configuration Release

май 2023 г.

Просто обновление: конфигурация устарела в пользу mode .

npx react-native run-ios --mode Release

Проверил сейчас, работает:

npx react-native run-ios --configuration Release --simulator="iPhone 14"

Насколько я знаю, реагировать родной не приходит с чем-то вроде этого из коробки.

Но поскольку ваше реагирующее нативное приложение также является простым приложением Objective-C с реагирующим нативом внутри, вы можете повторно использовать существующие инструменты для выполнения сборки / упаковки для вас.

Посмотрите следующую статью, например, о том, как автоматизировать сборку с помощью fastlane.

https://shift.infinite.red/simple-react-native-ios-releases-4c28bb53a97b

Просто и легко, просто запустите команду

      npx react-native run-ios --mode Release

Сценарий реагирования, который обрабатывает объединение, находится здесь:

        ./node_modules/react-native/scripts/react-native-xcode.sh

и он в основном делает это:

        node "./node_modules/react-native/cli.js" bundle  --entry-file "index.js" --platform ios --dev false --reset-cache --bundle-output "./app.app/main.jsbundle" --assets-dest "./app.app"

где bundle-output и asset-dest обычно указывают на ваш вывод сборки xcode. Например:

      ~/Library/Developer/Xcode/DerivedData/MyApp-enjmlvtpwwpnsxanntxwgpneywcy/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath/Release-iphonesimulator/MyApp.app
Другие вопросы по тегам