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/ios
rm -r build
react-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.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 *)host中。
更改代码:
oc
- NSString *host = ipGuess ?: @"localhost";
+ NSString *host = ipGuess ?: @"127.0.0.1";
模拟器可以。如果是设备,只需将IP地址更改为您计算机的IP地址即可。
对我有用的另一件事是在xcode中打开项目,然后清理并构建它。通常,它会重新运行打包服务器并解决问题。