我正在使用 RN 0.49.5 . 我've tried lots of methods, but no one works. Finally i worked this out. It'简单易行 .
主要想法是将 localhost 更改为 127.0.0.1 ,但's not where the RN tells you. It'中的's not where the RN tells you. It' .
代码更改: oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1"; 这对模拟器来说没问题 . 如果它's device, just change the ip address to your machine' s .
30 回答
通过以下方式解决错误
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模拟(
react-native run-ios
)正在运行时,问题消失了 - 我再次运行npm install
然后再运行react-native run-ios
. 在终端窗口中,它显示它正在捆绑,然后模拟器显示欢迎屏幕 .Check this link for briefs在
react-native init PropertyFinder
之后尝试使用npm start
(这个对我有用)关闭你的模拟器和终端 . 打开新的并转到您的项目,然后像这样升级您的react-native:
发行于:https://github.com/facebook/react-native/issues/5090
按照错误消息中的说明:
...我运行了以下命令:
它现在有效 .
当我捆绑我的应用程序时遇到同样的问题 . 检查
main.jsbundle
是否针对主项目当您不允许通过localhost进行不安全的连接时,或者您尝试通过http接受不安全的连接时,会发生此问题 .
要解决此问题,请在
info.plist
上添加:我有同样的错误,只能通过Xcode运行应用程序 .
react-native run-ios
没用 . 要解决此问题,您需要删除YOUR_PROJECT/ios/build/
处的build
文件夹 . 在此之后,您应该能够再次通过react-native run-ios
运行您的应用程序 . 希望这可以帮助 .原因:
这是因为应用无法找到服务器(通过javascript代码为UI提供服务) .
解:
确保所有相关的内容都与本机关闭(不是必需的,只是为了我的解决方案有一个干净的开始,在我的解释之后,你可以弄清楚这是否需要)
先
运行
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部分并启动开发服务器以向应用程序提供构建的UI . 这通常需要30秒才能完成 .=>通常情况下,javascript部分先完成,然后是原生部分 . (根据他们使用的时间) .
=>这仅适用于第一次构建(新构建) .
=>重建:
本机部分只需要10~15秒来检查更改,因为在构建和提供javascript部分之前,本机部分没有更改=>已完成 . (我不确定javascript部分是否重建但是它比原生部分需要很长时间)
这就是为什么我们遇到这个问题,应用程序运行并且需要尚未存在的东西 .
奖金:
react-native run-ios/android
将自动为您启动开发服务器 .这就是为什么当你在
react-native init <app_name>
之后运行react-native run-ios/android
时,一切都运行良好 . (因为自动启动功能和时间用于上面的状态的新建) .其他"removing"解决方案有效,因为它们迫使重建 .
这个答案使用的时间是相对于我的机器=>可能与其他人不同 .
对我来说问题是它无法创建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),并且它们正在破坏反应本机构建 .
这是react-native v0.42.1的问题 . 尝试关闭所有终端和XCode实例并运行:
是什么解决了我:
打开终端窗口
cd
成YOUR_PROJECT/ios
使用
rm -r build
删除构建文件夹再次运行
react-native run-ios
或者,您可以打开Finder,导航到
YOUR_PROJECT/ios
并删除build
文件夹 .然后运行
react-native run-ios again
.资料来源:Andrew Bancroft
我发现绕过这个最简单/最快捷的方法是退出模拟器中的应用程序(2 x
Cmd + Shift + H
)并重新启动 .确保.plist文件中的ATS设置正确 .
你可以在 /ios/{}/Info.plist 找到该文件
必须将localhost定义为异常请求目标,如下所示:
*(别忘了在发布版本中删除它..)
解决方案 - >
npm start
然后打开新的终端并转到你的项目路径然后点击react-native run-ios
它对我有用检查您的网络代理,更好地关闭它 .
或者你应该找到另一种维护打包服务器的方法
在重新启动我的mac之后,它也发生在我身上 . 当您在模拟器上运行应用程序时,会打开一个launchPackager终端窗口 . 我关闭了那个窗口并终止了这个过程(我也完成了模拟器),然后再次运行react-native run-ios,一切正常 .
在我的情况下,通过重新启动
adb
服务器来解决问题:adb kill-server && adb start-server
我也遇到过这个问题......问题是打包器没有运行它似乎可能是因为我的默认shell是zsh . react-native轮胎打开一个新的终端窗口并运行
.../node_modules/react-native/packager/launchPackager.command
但这没有运行 . 手动运行(并保持运行)为我解决了这个问题 .在info.plist中的NSExceptionDomains dict中检查你的'localhost'密钥
如果它不存在,则会导致错误 .
大多数情况下,当DNS查找/ IP查找无法找到localhost时,会出现此问题 .
Solution :
尝试将localhost ip添加到etc主机文件中 .
您可以将以下行添加到您的etc主机文件(/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 broadcasthost
:: 1升 . ocalhost
To confirm this is the issue 你可以在safari上点击捆绑网址(如果你在chrome中尝试它会解决但safari将无法解决它) . http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false
我有同样的问题 . 但我的问题是我的Mac和iPhone不在同一个wifi网络 .
因此,请确保它们都在同一网络中并再次重建 . 如果不是这种情况,请尝试其他成员提到的解决方案 .
首先关闭模拟器,然后在终端上运行这些模拟器
假设您正在使用
nvm
并安装了多个版本的节点,以下是解决方案:假设您在
node v6.9.5
中运行npm install -g react-native-cli
.现在通过运行
nvm alias default 6.9.5
将node v6.9.5
设为默认值现在运行
react-native run-ios
问题是,您通过
nvm
安装了多个版本的节点,并安装react-native-cli
您已切换或安装了最新版本的节点,该节点未标记为指向nvm
的默认节点 . 当您运行react-native run-ios
时,这将打开另一个新的终端窗口,其中默认nvm
未指向已安装react-native-cli
的节点版本 . 只需按照上面的设置,我希望应该有所帮助 .确保
launchPackage.command
正在终端中运行并再次尝试运行 . 它将构建捆绑包 . 它有点像webpack-dev-server .检查您的主机
127.0.0.1 localhost
是否未删除检查是否未设置网络代理
然后
npm install
&react-native upgrade
重置您的项目我正在使用
RN 0.49.5
. 我've tried lots of methods, but no one works. Finally i worked this out. It'简单易行 .主要想法是将
localhost
更改为127.0.0.1
,但's not where the RN tells you. It'中的's not where the RN tells you. It' .代码更改:
oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1";
这对模拟器来说没问题 . 如果它's device, just change the ip address to your machine' s .这是因为您的客户端无法访问您的打包服务器 .
如果你像我一样是中国编码员,我想你可能会使用VPN通过GFW . 当您的VPN工具处于“全局模式”时,您的所有请求都将遍布全球,无法获得localhost
尝试'自动代理模式' .
如果您不是来自中国,或者您的VPN设置是已经'自动代理模式',我建议你关闭你的打包服务器,然后再试一次 .
另一件适合我的方法是在xcode中打开项目,然后清理并构建它 . 通常它重新运行打包服务器并解决问题 .
...发生这种情况的另一个原因是,如果你已经安装了Visual Studio Code React Native Tools但是你一直试图在终端中使用react native:它将在第一次工作但它会停止并显示红色无捆绑屏幕 .
从vscode发布反应原生代码完美地工作...
对于我的用例,我不得不删除node_modules目录并运行npm install .
如果收到错误“dyld:Library not loaded:/usr/local/opt/icu4c/lib/libicui18n.58.dylib”,请执行以下操作: