Когда я запускаю реактивный проект, я получаю сообщение об ошибке no bundle URL present
, но я не знаю, какие ошибки я делаю, я был очень смущен.
В чем смысл "Отсутствие URL-адреса пучка" в ответном-родном?
Ответ 1
Решите ошибку No bundle URL present
:
- Запустив следующую команду в корневом каталоге проекта, чтобы удалить каталог сборки iOS, и чтобы убить другие сеансы React Native (при условии, что они запущены на порту 8081 по умолчанию) перед повторной сборкой:
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
- Обновите свой рабочий процесс React Native, чтобы избежать этой ошибки, объединив приведенную выше комбинацию команд в псевдоним и добавив его в конфигурационный файл Bash.bashrc с помощью этой команды:
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
Теперь вы можете запустить сборку React Native iOS (не беспокоясь о некоторых распространенных красных экранах ошибок при появлении смерти) с простым сокращением псевдонима:
rni
Ответ 2
Я просто столкнулся с этой проблемой (впервые начал работу с React Native). Проблема исчезла, когда - пока симуляция ios (react-native run-ios
) была запущена - я запустил npm install
, а затем react-native run-ios
снова. В окне терминала оно показало, что оно объединяется, а затем симулятор показал экран приветствия.
Посмотрите эту ссылку для инструкций после того, как react-native init PropertyFinder
попробуйте использовать npm start
(Это работает для меня)
Ответ 3
Закройте симулятор и терминал. Откройте новый и перейдите в свой проект, а затем обновите свой реагирующий нативно так:
react-native upgrade
Проблема в: Бесконечная рекурсия в RCTFatal, когда пакет не выполняется.
Ответ 4
Как указано в сообщении об ошибке:
Согласие на лицензию Xcode/iOS требует прав администратора, запустите "sudo xcodebuild -license", а затем повторите эту команду.
... Я выполнил следующую команду:
sudo xcodebuild -license
Он работает сейчас.
Ответ 5
Эта проблема возникает, когда вы не разрешаете незащищенные соединения через localhost, или, возможно, пытаетесь принять незащищенные соединения через http.
Чтобы исправить это, добавьте это на info.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
</key>
Ответ 6
Имела ту же проблему, когда я связал свое приложение. Убедитесь, что ваш main.jsbundle
нацелен на ваш основной проект
Ответ 7
Причина:
Это связано с тем, что приложение не может найти сервер (который обслуживает пользовательский интерфейс - по javascript-коду).
Решение:
- Удостоверьтесь, что все, что связано с реагированием на родной, закрыто (не обязательно, просто для того, чтобы иметь чистое начало для моего решения, после моего объяснения, вы можете понять, что это необходимо или нет)
- запустить
npm run start
илиyarn start
сначала - подождите, пока эта команда выполнит задание (обычно вы увидите
Loading dependency graph, done.
) - run
react-native run-ios/android
Пояснение:
-
React Native поставляется с 2 частями:
- Родная часть
- Часть Javascript
-
Команды сборки:
-
react-native run-ios/android
заключается в создании собственной части, затем развертывании на устройствах и запуске приложения на устройствах (имитатор/эмулятор/реальное устройство). Это обычно занимало 3 ~ 4 минуты, чтобы закончить. -
npm run start
илиyarn start
заключается в создании части javascript и запуске сервера dev для обслуживания встроенного пользовательского интерфейса для приложения. Это обычно занимает 30 секунд, чтобы закончить.
-
= > Обычно часть javascript завершается первой, затем нативная часть пришла позже. (в зависимости от времени, которое они использовали).
= > Это верно только для сборки в первый раз (новая сборка).
= > для повторной сборки:
-
Нативная часть потребовала 10 ~ 15 секунд для проверки изменений и потому, что никакая смена для native part = > не была выполнена до того, как часть javascript была построена и обслуживается. (Я не уверен, что часть javascript была перестроена или нет, но потребовалось много времени, чем исходная часть)
-
Вот почему у нас была эта проблема, приложение запустило и потребовало того, что еще не существует.
Bonus:
-
react-native run-ios/android
автоматически запустит для вас сервер dev. - Вот почему, когда вы запустили
react-native run-ios/android
сразу послеreact-native init <app_name>
, все прошло хорошо. (потому что функция автоматического запуска и время было занято для новой сборки, как указано выше). - Другие "удаленные" решения работали, потому что они принудительно восстанавливали.
Время, используемое в этом ответе, относилось к моей машине = > , может отличаться от других.
Ответ 8
У меня была такая же ошибка, и я смог запустить приложение только через Xcode. react-native run-ios
не работает. Чтобы устранить проблему, вам необходимо удалить папку build
в YOUR_PROJECT/ios/build/
. После этого вы снова сможете запустить приложение через react-native run-ios
. Надеюсь, это поможет.
Ответ 9
Попробуйте запустить этот код ---
sudo xcodebuild -license
Это может решить проблему. Это работает для меня.
Ответ 10
В большинстве случаев эта проблема возникает, когда поиск DNS/поиск IP не удается найти localhost.
Решение :
Попробуйте добавить IP-адрес localhost в ваш файл хоста etc.
Вы можете добавить следующие строки в ваш файл хоста etc (/etc/hosts)
127.0.0.1 localhost
255.255.255.255 широковещательный хост
:: 1 л. ocalhost
Чтобы подтвердить, что это проблема, вы можете нажать на URL пакета в Safari (если вы попробуете это в Chrome, это разрешит, но Safari не сможет решить). HTTP://локальный: 8081/index.ios.bundle платформы = ИОС & DEV = истина и преуменьшать = ложь
Ответ 11
Что решило это для меня:
- Откройте окно терминала
-
cd
вYOUR_PROJECT/ios
- Удалите папку сборки с помощью команды
rm -r build
- Запустите
react-native run-ios
снова
Кроме того, вы можете открыть Finder, перейти к YOUR_PROJECT/ios
и удалить папку build
.
Затем снова запустите react-native run-ios
.
Источник: Эндрю Бэнкрофт
Ответ 12
Убедитесь, что ваши настройки ATS верны в файле.plist.
Вы можете найти файл в /ios/{{project_name}}/Info.plist
localhost должен быть определен как целевой объект запроса исключения следующим образом:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (не забудьте удалить это в версии выпуска..)
Ответ 13
Для меня проблема заключалась в том, что он не мог создать пакет JS. Он не указывает на ошибку при построении с Xcode, поэтому вы не можете это знать. Чтобы найти ошибку, выполните следующую команду.
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output./ios/release/main.jsbundle --assets-dest./ios/release/main.jsbundle
Для меня ошибка была с отсутствием компонента PureRenderMixin. На это решение можно найти здесь: https://github.com/facebook/react-native/issues/13078. В основном вам нужно вручную установить [email protected] Это можно сделать, выполнив эту команду.
npm я --save [email protected]
Эта проблема сейчас происходит для всех, потому что выпущены новые версии реагирующих альфов (в частности, альфа-5), и они разрушают встроенные реактивные сборки.
Ответ 14
Решение → npm start
затем откройте новый терминал и перейдите к своему пути к проекту, а затем нажмите
react-native run-ios
он работает для меня
Ответ 15
Это проблема с response-native v0.42.1. Попытайтесь закрыть все экземпляры терминала и XCode и запустите:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
Ответ 16
Я нашел самый простой/быстрый способ обойти это, чтобы выйти из приложения в симуляторе (2 x Cmd + Shift + H
) и перезапустить.
Ответ 17
сначала закройте симулятор, затем запустите их на терминале
npm install
react-native run-ios
Ответ 18
проверьте свой сетевой прокси, лучше отключите его.
или u должен найти другой способ поддержки сервера упаковщика
Ответ 19
В моем случае проблема была устранена перезапуском сервера adb
: adb kill-server && adb start-server
Ответ 20
У меня эта проблема произошла и для меня... проблема заключалась в том, что пакет не запускался, похоже, потому, что моя оболочка по умолчанию была zsh. чтобы создать новое окно терминала и запустить .../node_modules/react-native/packager/launchPackager.command
, но это не сработало. Вручную запустить это (и сохранить его) исправил это для меня.
Ответ 21
проверьте свой "localhost" ключ в NSExceptionDomains dict в файле info.plist
если он не существует, он вызывает ошибку.
Ответ 22
У меня была такая же проблема. Но моя проблема заключалась в том, что мой Mac и iPhone не были в той же сети Wi-Fi.
Поэтому убедитесь, что они все в одной сети и снова восстановлены. Если это не так, попробуйте решения, упомянутые другими участниками здесь.
Ответ 23
Это случилось со мной, после перезагрузки моего mac. Там открывается окно терминала launchPackager, когда вы запускаете приложение на симуляторе. Я закрыл это окно и завершил процесс (я также закрыл симулятор), а затем снова запустил run-ios для реагирования, и все работает нормально.
Ответ 24
Предполагая, что вы используете nvm
и несколько версий node, вот решение:
- Скажите, что вы запустили
npm install -g react-native-cli
вnode v6.9.5
. - Теперь сделайте
node v6.9.5
по умолчанию, запустивnvm alias default 6.9.5
- Теперь запустите
react-native run-ios
Проблема заключается в том, что у вас есть несколько версий node, установленных через nvm
, и для установки react-native-cli
вы включили или установили последнюю версию node, которая не помечена как по умолчанию node, чтобы указать в nvm
пока. Когда вы запускаете react-native run-ios
, это открывает еще одно новое окно терминала, в котором по умолчанию nvm
не указывается версия node, где вы установили react-native-cli
. Просто следуйте приведенным выше настройкам, я надеюсь, что это поможет.
Ответ 25
Я столкнулся с той же проблемой и решил ее, внеся изменения в файл AppDelegate.m. Я изменил
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
в
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
И у меня это сработало :)
Ответ 26
попробуйте добавить это:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
Ответ 27
Просто запустите в Терминале react-native start
:
cd your react native app directory/ react-native start
Он запустит упаковщик, теперь не закрывайте это окно терминала, в другом окне терминала запустите ваш проект. Это единственное желание, которое я нашел, чтобы заставить его работать должным образом.
Ответ 28
убедитесь, что у вас есть .jsbundle в вашем проекте
Добавить
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
в вашем реагировать нативный код попробуйте снова открыть проект
Ответ 29
Убедитесь, что launchPackage.command
запущен в терминале и повторите попытку. Он будет строить пучок. Это похоже на webpack-dev-сервер.
Ответ 30
- проверьте хосты, что
127.0.0.1 localhost
не удаляет - проверьте, что сетевой агент не настроен.
- а затем
npm install
иreact-native upgrade
- reset ваш проект