在react-native中,什么方法没有绑定URL?
当我运行一个react-native项目时,我得到一个错误, no bundle URL present
,但我不知道我做了什么错误,我非常困惑。
我也遇到了这个问题(第一次开始使用React Native)。 当一个ios模拟( react-native run-ios
)正在运行时,问题消失了 – 我运行了npm install
,然后再次react-native run-ios
。 在terminal窗口显示它是捆绑的,然后模拟器显示欢迎界面。
检查这个链接后, react-native init PropertyFinder
行尝试使用npm start
(这一个为我工作)
解决错误No bundle URL present
:
- 在项目根目录中运行以下命令以删除iOS构build目录,并在重新构build之前终止其他React Native会话(假设它们在默认端口8081上运行):
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios
- 更新您的React Native工作stream程,以避免这些错误发生,将上述命令组合到一个别名中,并使用以下命令将其附加到Bashconfiguration文件.bashrc:
echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
现在你可以用一个简单的别名快捷方式运行React Native iOS build(不用担心死亡出现的一些常见的红色错误屏幕):
rni
closures你的模拟器和terminal。 打开新的并转到你的项目,然后像这样升级你的react-native:
react-native upgrade
问题在: https : //github.com/facebook/react-native/issues/5090
我有同样的错误,只能通过Xcode运行应用程序。 react-native run-ios
不起作用。 要解决此问题,您需要删除YOUR_PROJECT/ios/build/
的build
文件夹。 在此之后,您应该能够通过react-native run-ios
再次运行您的应用程序。 希望这可以帮助。
必须按照错误消息中的说明运行sudo xcodebuild -license
:
“同意Xcode / iOS许可证需要pipe理员权限,请运行”sudo xcodebuild -license“,然后重试此命令。”
现在工作
对我来说问题是它不能创buildJS捆绑。 它没有声明从Xcode构build时的错误,所以没有办法让你知道这一点。 要find错误,请运行以下命令。
react-native bundle --platform ios --dev false --entry-file index.ios.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
对于我来说,错误是因为缺lessPureRenderMixin组件。 可以在这里find解决scheme: 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),他们正在打破反应原生的构build。
这是react-native v0.42.1的一个问题。 尝试closures所有terminal和XCode实例并运行:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist watchman version react-native run-ios
什么解决了我的:
- 打开一个terminal窗口
-
cd
进入YOUR_PROJECT/ios
- 用
rm -r build
删除build文件夹 - 再次运行
react-native run-ios
或者,您可以打开Finder,导航到YOUR_PROJECT/ios
并删除build
文件夹。
然后再运行react-native run-ios again
。
来源: Andrew Bancroft
它也发生在我身上,重新启动我的Mac后。 在模拟器上运行应用程序时,会有一个launchPackagerterminal窗口打开。 我closures了窗口并终止了这个过程(我也打开了模拟器),然后再运行react-native run-ios,一切正常。
在我的情况下,通过重新启动adb
服务器解决了问题: adb kill-server && adb start-server
我也遇到了这个问题…问题是打包机没有运行,似乎可能是因为我的默认shell是zsh。 反应,本地轮胎打开一个新的terminal窗口,并运行.../node_modules/react-native/packager/launchPackager.command
但这并没有运行。 手动运行(并保持运行)为我解决这个问题。
解决scheme – > npm start
然后打开新的terminal,并转到您的项目path,然后点击react-native run-ios
它为我工作
检查您的networking代理,更好地closures它。
或者你应该找另一种方式来维护包装服务器
检查你的'localhost'键在NSExceptionDomains字典在info.plist
如果不存在,则会导致错误。
假设您正在使用nvm
并安装了多个版本的节点,这里是解决scheme:
- 假设您在
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
打开另一个新的terminal窗口,其中默认nvm
未指向已安装react-native-cli
的节点版本。 只要按照上面的设置,我希望应该帮助。
我发现绕过这个最简单/最快的方法是在模拟器(2 x Cmd + Shift + H
)中退出应用程序并重新启动。
确保launchPackage.command
在terminal中运行,然后再次运行。 它将build立捆绑。 这有点像webpack-dev-server。
大多数情况下,当DNS查找/ IP查找无法find本地主机时,会发生此问题。
解答:
尝试添加本地主机IP到您的主机文件。
您可以将下面的行添加到您的etc主机文件(/ etc / hosts)
127.0.0.1 localhost
255.255.255.255 broadcasthost
:: 1 l。 ocalhost
要确认这个问题,你可以打Safari浏览器的url(如果你在Chrome浏览器中试用,这将解决,但Safari浏览器将无法解决它)。 HTTP://本地主机:8081 / index.ios.bundle平台= iOS和开发=真缩小= FALSE
- 检查你的主机,
127.0.0.1 localhost
是不是删除 - 检查networking代理是否没有设置
- 然后
npm install
&react-native upgrade
来重置您的项目
我正在使用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";
oc - NSString *host = ipGuess ?: @"localhost"; + NSString *host = ipGuess ?: @"127.0.0.1";
这对模拟器来说是好的。 如果是设备,只需将IP地址更改为您的设备。
确保您的ATS设置在.plist文件中是正确的。
您可以在/ios/smileyspinners/Info.plistfind该文件
localhost必须被定义为这样的exception请求目标:
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict>
*(不要忘记删除发行版本..)
closures当前运行的React Packager
terminal窗口,然后从Xcode重新运行你的iOS项目应该工作。