rm -rf ios/build/
watchman watch-del-all
rm -rf ios/build/
watchman watch-del-all
Answers:
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)。当-在react-native run-ios运行ios Simulation()时-我跑了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",
解:
在Xcode中搜索8081,并将其全部替换为8082。然后运行相同的命令来构建和运行该应用程序。应用程序运行顺利
react-native start --port=8082
react-native run-ios --port=8082
如错误消息中所述:
同意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”添加了一个块作为异常域,它起作用了。
原因:
这是因为该应用无法找到服务器(通过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秒才能完成。
=>通常,javascript部分首先完成,然后本机部分结束。(基于他们使用的时间)。
=>仅在第一次构建(新构建)时才如此。
=>用于重新构建:
本机部分只花了10到15秒钟的时间来检查更改,并且因为本机部分未进行任何更改=>在构建和投放javascript部分之前完成。(我不确定javascript部分是否已重建,但比本机部分花费了很长时间)
因此,这就是我们遇到此问题的原因,该应用运行并需要尚不存在的内容。
奖金:
react-native run-ios/android 将自动为您启动开发服务器。react-native run-ios/android之后react-native init <app_name>,一切运行良好。(因为自动启动功能和上述状态花费了新的构建时间)。此答案所用的时间与我的机器有关=>在其他机器上可能有所不同。
大多数情况下,当DNS查找/ IP查找无法找到本地主机时,就会出现此问题。
解决方案:
尝试将localhost ip添加到您的etc主机文件中。
您可以将以下行添加到您的etc主机文件(/ etc / hosts)
127.0.0.1本地主机
255.255.255.255广播主机
:: 1升 ocalhost
要确认这是问题所在, 您可以在safari上点击捆绑包网址(如果您在chrome中尝试使用,则可以解决,但safari无法解决)。http:// localhost:8081 / index.ios.bundle?platform = ios&dev = true&minify = false
确保.plist文件中的ATS设置正确。
您可以在/ios/{{project_name}}/Info.plist中找到文件
必须将本地主机定义为异常请求目标,如下所示:
<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。基本上,您必须手动安装react@16.0.0-alpha.3。可以通过运行此命令来完成。
npm i --save react@16.0.0-alpha.3
现在,每个人都在发生此问题,因为发布了较新版本的React Alpha(尤其是alpha.5),并且它们破坏了React Native的构建。
"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/iosrm -r buildreact-native run-ios一次或者,您可以打开Finder,浏览YOUR_PROJECT/ios并删除该build文件夹。
然后react-native run-ios再次运行。
首先关闭模拟器,然后在终端上运行它们
npm install
react-native run-ios
只需在Terminal中运行react-native start:
cd your react native app directory/ react-native start
它将启动打包程序,现在不要关闭此终端窗口,在另一个终端窗口中运行您的项目。这是我发现可以使其正常运行的唯一希望。
我有同样的问题。但是我的问题是我的Mac和iPhone不在同一个wifi网络中。
因此,请确保它们都在同一网络中并再次重建。如果不是这种情况,请尝试此处其他成员提到的解决方案。
检查您的网络代理,最好将其关闭。
或者您应该找到其他方法来维护打包服务器
就我而言,问题是通过重新启动adb服务器来解决的:adb kill-server && adb start-server
假设您正在使用nvm并且安装了多个版本的节点,那么以下是解决方案:
npm install -g react-native-cli参加node v6.9.5。 node v6.9.5通过运行将其设置为默认值nvm alias default 6.9.5react-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 *)host中。
更改代码:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
模拟器可以。如果是设备,只需将IP地址更改为您计算机的IP地址即可。
对我有用的另一件事是在xcode中打开项目,然后清理并构建它。通常,它会重新运行打包服务器并解决问题。