答案 0 :(得分:96)
通过以下方式解决错误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
答案 1 :(得分:63)
我也遇到了这个问题(第一次开始使用React Native)。当ios模拟(react-native run-ios
)正在运行时,问题就消失了 - 我再次运行npm install
然后react-native run-ios
。在终端窗口中,它显示它正在捆绑,然后模拟器显示欢迎屏幕。
react-native init PropertyFinder
行尝试使用npm start
之后Check this link for briefs(这个适用于我)
答案 2 :(得分:27)
关闭模拟器和终端。打开一个新项目并转到您的项目,然后像这样升级您的反应原生:
react-native upgrade
答案 3 :(得分:25)
按照错误消息中的说明:
同意Xcode / iOS许可证需要管理员权限,请运行“sudo xcodebuild -license”,然后重试此命令。
...我运行了以下命令:
sudo xcodebuild -license
现在有效。
答案 4 :(得分:18)
如果您不允许通过localhost进行不安全的连接,或者您尝试通过http接受不安全的连接,则会出现此问题。
要解决此问题,请在info.plist
上添加:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
</key>
答案 5 :(得分:17)
答案 6 :(得分:13)
原因:
这是因为应用程序找不到服务器(通过javascript代码为UI提供服务)。
解决方案:
npm run start
或yarn start
Loading dependency graph, done.
)react-native run-ios/android
说明:
React Native包含两部分:
构建命令:
react-native run-ios/android
是构建本机部分然后部署到设备并在设备上启动应用程序(模拟器/模拟器/真实设备)。这通常需要3到4分钟才能完成。
npm run start
或yarn start
是构建javascript部分并启动开发服务器以向应用提供构建的UI。这通常需要30秒才能完成。
=&GT;通常,javascript部分首先完成,然后本机部分稍后出现。 (根据他们使用的时间)。
=&GT;这只适用于第一次构建(新构建)。
=&GT;重建:
原生部分只花了10~15秒来检查变化,因为原生部分没有变化=&gt;在构建和提供javascript部分之前完成。 (我不确定javascript部分是否已经重建但是它比原生部分需要很长时间)
这就是为什么我们遇到这个问题,应用程序运行并且需要尚未存在的东西。
加成:
react-native run-ios/android
将为您自动启动开发服务器。react-native run-ios/android
之后立即运行react-native init <app_name>
时,一切运行良好。 (因为自动启动功能和上面所述的新构建时间)。这个答案使用的时间是相对于我的机器=&gt;可能与其他人不同。
答案 7 :(得分:11)
我遇到了同样的错误,只能通过Xcode运行应用程序。 react-native run-ios
没有用。要解决此问题,您需要删除build
处的YOUR_PROJECT/ios/build/
文件夹。在此之后,您应该可以再次通过react-native run-ios
运行您的应用。希望这会有所帮助。
答案 8 :(得分:7)
尝试运行此代码---
sudo xcodebuild -license
这可以解决问题。这对我有用。
答案 9 :(得分:6)
执行以下步骤:
答案 10 :(得分:6)
为我解决了什么:
cd
加入YOUR_PROJECT/ios
rm -r build
react-native run-ios
或者,您可以打开Finder,导航到YOUR_PROJECT/ios
并删除build
文件夹。
然后运行react-native run-ios again
。
答案 11 :(得分:5)
大多数情况下,当DNS查找/ IP查找无法找到localhost时会出现此问题。
解决方案:
尝试将localhost ip添加到您的etc主机文件中。
您可以将以下行添加到您的etc主机文件(/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 broadcasthost
:: 1 l。 ocalhost
确认这是问题 你可以在safari上点击捆绑网址(如果你在chrome中尝试它会解决但是safari赢了并且无法解决它)。 http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false
答案 12 :(得分:5)
解决方案 - &gt;
npm start
然后打开新终端并转到项目路径,然后点击
react-native run-ios
它对我有用
答案 13 :(得分:5)
确保.plist文件中的ATS设置正确。
您可以在 / 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>
*(别忘了在发布版本中删除它。)
答案 14 :(得分:5)
对我来说问题是它无法创建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。基本上你必须手动安装react@16.0.0-alpha.3。这可以通过运行此命令来完成。
npm i --save react@16.0.0-alpha.3
现在每个人都会遇到这个问题,因为更新版本的反应alphas正在发布(特别是alpha.5),而且它们正在破坏反应原生的构建。
答案 15 :(得分:4)
首先关闭模拟器,然后在终端上运行
npm install
react-native run-ios
答案 16 :(得分:4)
这是react-native v0.42.1的问题。尝试关闭所有终端和XCode实例并运行:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
答案 17 :(得分:4)
我发现绕过此最简单/最快捷的方法是退出模拟器中的应用程序(2 x Cmd + Shift + H
)并重新启动。
答案 18 :(得分:3)
检查您的网络代理,最好将其关闭。
或者您应该找到另一种维护打包服务器的方法
答案 19 :(得分:3)
检查您的本地主机&#39; NSExceptionDomains中的密钥在info.plist中显示
如果它不存在,则会导致错误。
答案 20 :(得分:2)
在重新启动我的mac之后,我也遇到过这种情况。当您在模拟器上运行应用程序时,会打开一个launchPackager终端窗口。我关闭了那个窗口并终止了这个过程(我也完成了模拟器),然后再次运行react-native run-ios,一切正常。
答案 21 :(得分:2)
假设您正在使用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
您已切换或安装了最新版本的节点,该节点未标记为指向{{的默认节点1}}。当您运行nvm
时,这会打开另一个新的终端窗口,其中默认react-native run-ios
未指向已安装nvm
的节点版本。只需按照上面的设置,我希望应该有所帮助。
答案 22 :(得分:2)
我有同样的问题。但我的问题是我的Mac和iPhone不在同一个wifi网络。
确保他们都在同一个网络中并再次重建。如果不是这种情况,请尝试其他成员提到的解决方案。
答案 23 :(得分:2)
在我的情况下,通过重新启动adb
服务器解决了问题:adb kill-server && adb start-server
答案 24 :(得分:2)
我也遇到过这个问题...问题是打包器没有运行它似乎可能是因为我的默认shell是zsh。 react-native轮胎打开一个新的终端窗口并运行.../node_modules/react-native/packager/launchPackager.command
,但这没有运行。手动运行(并保持运行)为我解决了这个问题。
答案 25 :(得分:2)
我遇到了同样的问题,并通过在 AppDelegate.m 文件中进行了更改来解决了该问题。我改变了
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
到
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
对我有用:)
答案 26 :(得分:1)
确保项目中包含.jsbundle
添加
react-native bundle --dev false --entry-file index.js --bundle-output ios/main.jsbundle --platform ios
在您的本机代码中 尝试重新打开项目
答案 27 :(得分:1)
我正在运行iOS模拟器,此方法有效:
1。清理您的本机项目
1.a对于Android项目
cd android
gradlew clean
1.b对于iOS项目
cd ios
xcodebuild clean
2。清洁您的反应性缓冲剂
2.a如果您使用的是npm
npm start -- --reset-cache
2.b如果您使用的是纱线
yarn reset cache
之后,您可以再次运行项目。
答案 28 :(得分:1)
只需在终端react-native start
中运行:
cd your react native app directory/ react-native start
它将启动打包程序,现在不要关闭此终端窗口,在另一个终端窗口中运行您的项目。这是我发现可以正常运行的唯一希望。
答案 29 :(得分:1)
执行以下命令:
killall -9 node
rm -rf ios/build
react-native run-ios
它将打开launchpackager.command并将应用程序安装在ios模拟器上
答案 30 :(得分:0)
步骤1: 通过“终端”进行导航,在您的xcode中打开.xcodeworkspace项目, “打开/ios/.xcodeworkspace”,按Enter。
步骤2: 删除文件夹中的main.jsbundle文件
步骤3: 回到VS Code,输入 react-native包--entry-file index.js --platform ios --dev false --bundle-output ios / main.jsbundle --assets-est ios
这将为您生成新的main.jsbundle文件。
第4步: react-native run-ios
您不会再看到错误
答案 31 :(得分:0)
这是因为您可能已经关闭了“ Metro Bundler窗口”,否则可能已崩溃。只需在项目目录中打开另一个终端/ cmd,然后运行npm start
。通过运行npm start
,React Native将再次启动MetroBundler窗口。捆绑程序完成BUNDLE
处理后,只需重新加载应用程序,您就可以开始使用了。
答案 32 :(得分:0)
好吧,这听起来很怪异,但这些答案对我来说都不起作用。
我现在的反应本机是0.60,问题是在ios和android上发生的。
唯一对我有用的解决方案是运行
react-native run-ios
或react-native run-android
然后,当错误出现时,运行
npm install
(保持捆绑器和模拟器打开)
然后运行react-native run-ios
或react-native run-android
答案 33 :(得分:0)
打开终端窗口
cd into YOUR_PROJECT/ios
使用rm -r build
删除构建文件夹
然后,在Xcode中打开您的项目并运行一次。它将在启动服务器时运行并创建main.jsbundle
文件。
现在,如果您再次从终端运行react-native run-ios
,它将按预期运行。
希望这会有所帮助!。
答案 34 :(得分:0)
发生此问题是因为在另一个窗口中用键盘打字时,Metro捆绑器启动并获得了焦点。我在新打开的终端窗口中意外输入导致Metro bundler崩溃。重新运行react-native run-ios
并耐心等待。
答案 35 :(得分:0)
如果您正在运行IOS模拟器,请确保需要运行此命令
react-native运行Android 要么 npm run-android
一旦您在命令Metro bundler上面运行,它将启动,然后运行react-nagtive run-ios它将起作用。
答案 36 :(得分:0)
我尝试了以上大多数答案。
但是唯一适用的方法是看门人命令(我使用react-native: "0.60.4"
):
watchman watch-del-all
答案 37 :(得分:0)
当我们有多个由nvm管理的节点版本并且默认版本不是要运行react-native的版本时,可能会发生此问题。 (确保它是Node 8.3或更高版本)
react-native run-ios
打开一个新终端并运行$ PATH中找到的节点版本。
如果它发现本机不支持的较旧版本的节点,则可能会出现此错误。
请确保在打开新终端时,$ PATH变量已经指向节点的预期版本(确保它是Node 8.3或更高版本)。
那为我解决了这个问题。祝你好运。
答案 38 :(得分:0)
我尝试了上述所有解决方案,但对我却不起作用。这对我有用,如果上述答案对您没有帮助,您可以尝试一下。
在Xcode上打开项目工作区,然后删除[PROJECT-NAME] /main.jsbundle
main.jsbundle
文件
在同一文件夹中创建一个新的main.jsbundle。 {右键单击->选择新文件->它将打开一个对话框,查找Others
部分,->选择Empty
->将该文件命名为main.jsbundle
->保存< / p>
然后返回到项目的终端。并运行以下命令:
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
我希望这对您有所帮助。
答案 39 :(得分:0)
对于Mcafee Macbook用户:
sudo launchctl删除com.mcafee.agent.macmn
答案 40 :(得分:0)
也许您忘记了这一步
cd ios && pod install
答案 41 :(得分:0)
对于 Ios,请按照以下步骤操作,
答案 42 :(得分:0)
我也有这个屏幕,但我的问题是我前一天晚上一直在使用代理(使用 Charles 监控来自 RN env 的网络请求)。
一旦我关闭代理,应用程序就会在我的模拟器中构建/运行而没有问题。
答案 43 :(得分:0)
对于我的用例,我必须删除node_modules目录并运行npm install。
$ rm -rf node_modules (make sure you're in the ios project directory)
$ npm install
如果收到错误&#34; dyld:未加载库:/usr/local/opt/icu4c/lib/libicui18n.58.dylib" ;,请执行以下操作:
$ brew uninstall --force node --ignore-dependencies node
$ brew uninstall icu4c --ignore-dependencies icu4c
$ brew install icu4c
$ brew unlink icu4c && brew link icu4c --force
$ brew install node
$ npm install
答案 44 :(得分:0)
我正在使用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地址更改为您的设备即可。
答案 45 :(得分:0)
这是因为您的客户端无法访问您的打包服务器。
如果你像我一样是中国编码员,我想你可能会使用VPN通过GFW。当您的VPN工具处于“全局模式”状态时,您的所有请求都将遍历全球,无法获取localhost
尝试自动代理模式&#39;。
如果您不是来自中国,或者您的VPN设置已经是“自动代理模式”,我建议您关闭打包服务器并重试。
答案 46 :(得分:0)
另一件适合我的方法是在xcode中打开项目,然后清理并构建它。通常它重新运行打包服务器并解决问题。
答案 47 :(得分:0)
确保launchPackage.command
正在终端中运行,然后再次尝试运行。它将构建捆绑包。它有点像webpack-dev-server。
答案 48 :(得分:0)
...发生这种情况的另一个原因是,如果您已经安装了Visual Studio代码React Native Tools但是您一直尝试在终端中使用react native:它将在第一次工作,但之后它将停止并显示你是红色无捆绑屏幕。
从vscode启动react native可以完美地工作......
答案 49 :(得分:0)
关闭全局代理(shadowsocks)
答案 50 :(得分:0)
尝试添加此内容:
gcloud auth login
答案 51 :(得分:0)
这个对我有用。我确实出于生产目的从iOS的plist文件中删除了这些行,因此模拟器无法获取捆绑文件。 https://medium.com/@joshuakuhar/no-bundle-url-present-69333bb5da42
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
答案 52 :(得分:0)
export FORCE_BUNDLING=true
为我工作。控制台中警告说它没有捆绑在一起。
答案 53 :(得分:0)
我通过Macbook上的电缆和wifi连接到网络,禁用了wifi,然后点击运行就可以了!
答案 54 :(得分:0)
我们通过在RN文档建议添加的构建脚本中删除SKIP_BUNDLING选项来加快调试构建,从而解决了这一问题。真正的解决方法(出于我们的原因)包含在RN 0.57中:
答案 55 :(得分:0)
这是我的方法:
答案 56 :(得分:0)
127.0.0.1 localhost
未删除的主机npm install
&amp; react-native upgrade
重置您的项目答案 57 :(得分:0)
我已经尝试了以下所有解决方案,但没有任何效果:
sudo xcodebuild -license
或rm -r build
删除构建文件夹,然后运行react-native run-ios
或npm start
并运行react-native run-ios
NSAppTransportSecurity
添加到`我通过这样做解决了
sudo vi /private/etc/hosts
(如果使用VSCode,请使用此sudo code /private/etc/hosts
)127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
react-native run-ios
。答案 58 :(得分:-1)
使用命令react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release /main.jsbundle
答案 59 :(得分:-1)
我知道这个问题有很多答案,但是这些对我没有帮助。下面的解决方案可帮助我解决错误。
您必须进入设置并允许该特定应用。
来源“launchPackager.command” cannot be opened because it is from an unidentified developer
答案 60 :(得分:-1)
关闭当前正在运行的React Packager
终端窗口,然后从Xcode重新运行您的iOS项目应该可以正常运行。