Запустите сборку релиза 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