Когда я запускаю реактивный проект, я получаю ошибку no bundle URL present
, но я не знаю, какие ошибки я делаю, я был очень смущен.
rm -rf ios/build/
watchman watch-del-all
Когда я запускаю реактивный проект, я получаю ошибку no bundle URL present
, но я не знаю, какие ошибки я делаю, я был очень смущен.
rm -rf ios/build/
watchman watch-del-all
Ответы:
Решите ошибку No bundle URL present
:
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
Теперь вы можете запустить сборку React Native iOS (не беспокоясь о некоторых распространенных красных экранах появления ошибок) с помощью простого ярлыка псевдонима:
rni
Я только что столкнулся с этой проблемой (впервые начал работать с React Native). Проблема исчезла, когда во время работы ios simulation ( react-native run-ios
) я запустился, npm install
а затем react-native run-ios
снова. В окне терминала показывалось, что это пакетирование, а затем симулятор показал экран приветствия.
Проверьте эту ссылку для кратких обзоров после react-native init PropertyFinder
строки, пытайтесь использовать npm start
(этот работает для меня)
================================================== ======================
ОБНОВЛЕНИЕ для 16,9
Мой порт 8081 был заблокирован McAfee. Использование другого порта напрямую не работало react-native start --port=8082
иreact-native run-ios --port=8082
Перепробовал практически все решения, приведенные здесь. но ничего не получалось.
"react": "16.9.0",
"react-dom": "^16.12.0",
"react-native": "0.61.5",
Решение:
Произведен поиск 8081 в Xcode и замена всех их на 8082. Затем выполните те же команды для сборки и запуска приложения. Приложение работает плавно
react-native start --port=8082
react-native run-ios --port=8082
У меня была такая же проблема, когда я связывал свое приложение. Убедитесь, что вы main.jsbundle
нацелены на ваш основной проект
Как указано в сообщении об ошибке:
Для получения лицензии Xcode / iOS требуются права администратора, пожалуйста, запустите «sudo xcodebuild -license», а затем повторите эту команду.
Выполнение следующей команды сработало:
sudo xcodebuild -license
Эта проблема возникает, когда вы не разрешаете незащищенные соединения через локальный хост или, возможно, вы пытались принять незащищенные соединения через http.
Чтобы это исправить, добавьте это на info.plist
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
localhost
моего локального сетевого адреса в Info.plist и, следовательно, он не разрешался. Я добавил блок для localhost в качестве домена исключения, и это сработало.
Закройте симулятор и терминал. Откройте новый и перейдите к своему проекту, а затем обновите свой реагирующий нативно так:
react-native upgrade
Проблема в: бесконечная рекурсия в RCTFatal, когда пакет не выполняется .
Причина:
Это потому, что приложение не может найти сервер (который обслуживает пользовательский интерфейс - по коду JavaScript).
Решение:
npm run start
или yarn start
первымLoading dependency graph, done.
)react-native run-ios/android
Объяснение:
React Native состоит из 2 частей:
Команды сборки:
react-native run-ios/android
состоит в том, чтобы создать собственную часть, затем развернуть на устройствах и запустить приложение на устройствах (симулятор / эмулятор / реальное устройство). Обычно это занимает 3 ~ 4 минуты, чтобы закончить.
npm run start
или yarn start
создать часть javascript и запустить сервер dev для обслуживания встроенного пользовательского интерфейса приложения. Обычно это занимает 30 секунд, чтобы закончить.
=> Обычно, часть javascript заканчивается сначала, а потом - нативная. (основываясь на времени, которое они использовали).
=> это верно только для первой сборки (свежей сборки).
=> для восстановления:
Нативная часть просто заняла 10 ~ 15 секунд, чтобы проверить изменения, и потому что никаких изменений для нативной части => не было сделано до того, как часть javascript была собрана и обработана. (Я не уверен, что часть javascript была перестроена или нет, но это заняло больше времени, чем нативная часть)
Вот почему у нас возникла эта проблема, приложение запустилось и потребовало вещи, которой еще не было.
Бонус:
react-native run-ios/android
автоматически запустит сервер разработки для вас.react-native run-ios/android
сразу после этого react-native init <app_name>
, все работало хорошо. (потому что функция автоматического запуска и время были взяты для новой сборки, как указано выше).Время, использованное в этом ответе, было относительно моей машины => может отличаться от других.
Попробуйте запустить этот код:
$ sudo xcodebuild -license
Это может решить проблему. Это работает для меня.
У меня была та же ошибка, и я смог запустить приложение только через XCode. react-native run-ios
не сработало. Для решения проблемы вам необходимо удалить build
папку по адресу YOUR_PROJECT/ios/build/
. После этого вы сможете снова запустить приложение react-native run-ios
. Надеюсь это поможет.
В большинстве случаев эта проблема возникает, когда при поиске 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 = верно и преуменьшать = ложь
Убедитесь в правильности настроек ATS в файле .plist.
Вы можете найти файл по адресу
localhost должен быть определен как цель запроса на исключение следующим образом:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
* (не забудьте удалить это в релизной версии ..)
Для меня проблема заключалась в том, что он не мог создать пакет 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 . Как правило, вы должны вручную установить response@16.0.0-alpha.3. Это можно сделать с помощью этой команды.
npm i --save react@16.0.0-alpha.3
Эта проблема теперь возникает для всех, потому что выпускаются более новые версии реагирующих альфа-версий (особенно альфа-5), и они ломают сборки реагирующих нативов.
"plugins": ["transform-decorators-legacy"]
в ваш файл .babelrc. Или попробуйте с подключением HOC.
The node type SpreadProperty has been renamed to SpreadElement
ссылок @babel
внутри node_modules
, я не нашел ничего, что решило эту проблему .
Решение ->
npm start
затем откройте новый Терминал и перейдите к пути вашего проекта, а затем нажмите
react-native run-ios
его работает для меня
Что решило это для меня:
cd
в YOUR_PROJECT/ios
rm -r build
react-native run-ios
сноваКроме того, вы можете открыть Finder, перейти к папке YOUR_PROJECT/ios
и удалить ее build
.
Тогда беги react-native run-ios
снова.
Источник: Эндрю Бэнкрофт
Это проблема с response-native v0.42.1. Попробуйте закрыть все терминалы и экземпляры XCode и запустите:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
сначала закройте симулятор, затем запустите их на терминале
npm install
react-native run-ios
Просто запустите в Терминале react-native start
:
cd your react native app directory/ react-native start
Он запустит упаковщик, теперь не закрывайте это окно терминала, в другом окне терминала запустите ваш проект. Это единственное желание, которое я нашел, чтобы заставить его работать должным образом.
Я нашел самый простой / быстрый способ обойти это, чтобы выйти из приложения в симуляторе (2 х Cmd + Shift + H
) и перезапустить.
У меня была такая же проблема. Но моей проблемой было то, что мой Mac и iPhone не были в одной сети Wi-Fi.
Поэтому убедитесь, что все они находятся в одной сети, и восстановите их еще раз. Если это не так, попробуйте решения, упомянутые другими участниками здесь.
проверьте свой сетевой прокси, лучше выключите его.
или вы должны найти другой способ сохранить сервер упаковщика
В моем случае проблема была исправлена путем перезапуска adb
сервера:adb kill-server && adb start-server
У меня тоже была эта проблема ... проблема была в том, что упаковщик не работал, казалось, потому что моей оболочкой по умолчанию была zsh. Реактивные шины, чтобы открыть новое окно терминала и запустить, .../node_modules/react-native/packager/launchPackager.command
но это не сработало. Выполнение этого вручную (и поддержание его работы) исправило это для меня.
проверьте ваш ключ 'localhost' на NSExceptionDomains dict в info.plist
если он не существует, это вызывает ошибку.
Предполагая, что вы используете nvm
и установлено несколько версий узла, вот решение:
npm install -g react-native-cli
вnode v6.9.5
. node v6.9.5
по умолчанию, запустивnvm alias default 6.9.5
react-native run-ios
Проблема в том, что у вас установлено несколько версий узла, nvm
и для установки react-native-cli
вы переключились или установили последнюю версию узла, которая еще не помечена как узел по умолчанию для указания nvm
. При запуске react-native run-ios
это открывает другое новое окно терминала, в котором по умолчанию nvm
не указывается версия узла, где вы установили react-native-cli
. Просто следуйте приведенным выше настройкам, надеюсь, это должно помочь.
убедитесь, что у вас есть .jsbundle в вашем проекте
Добавить
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
в своем реактивном нативном коде попробуйте заново открыть проект
Я работаю с RN 0.49.5
. Я перепробовал много методов, но никто не работает. Наконец я решил это. Это просто и легко.
Основная идея заключается в том, чтобы изменить localhost
к 127.0.0.1
, но это не там , где RN говорит вам. Он находится в RCTBundleURLProvider.m # - (BOOL) isPackagerRunning: (NSString *) хост .
Изменения кода:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
это нормально для симулятора. Если это устройство, просто измените IP-адрес на ваш компьютер.
Еще одна вещь, которая работает для меня, это открыть проект в xcode, а затем очистить и собрать его. обычно он перезапускает сервер упаковки и решает проблему.
Выполните следующую команду:
killall -9 node
rm -rf ios/build
react-native run-ios
откроется launchpackager.command, и приложение будет установлено на симуляторе ios