我构建了一个在iOS模拟器上运行良好的应用程序。当我尝试在iOS设备上构建它时,构建和安装成功但在打开时,我收到此消息:
不存在捆绑网址。
确保您正在运行打包服务器或在应用程序包中包含.jsbundle文件。
RCTFatal
__ 28- [RCTCxxBridge handleError:] _ block_invoke
我现在尝试了三种设备,因此设备没有问题。 到目前为止,我已经: 1)删除iOS构建文件夹并重建 2)npm安装 3)清理xCode数据 4)多次重启每个进程
我注意到的一件事是,React Packager没有在构建结束时捆绑index.js,就像我运行Simulator时一样。这可能是问题的核心,但我不确定如何解决它。
我还读到使用React-Native-Router-Flux(我这样做)可能会对这个过程产生一些影响,但也不确定会有什么相关的修复。
谢谢!
答案 0 :(得分:1)
我通过从生产版本中删除的Info.plist文件中包含以下代码来解决此问题。
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
答案 1 :(得分:0)
看看这里的解决方案是否有效。您可能已删除了构建文件夹并重建了,但这些答案似乎表明在删除和重建之前杀死所有React-Native会话可能会有效。
What means of no bundle URL present in react-native?
https://github.com/facebook/react-native/issues/12754
https://www.google.com/search?client=safari&rls=en&q=No+bundle+URL+present.&ie=UTF-8&oe=UTF-8
有助于包含对您已经尝试过但没有工作的StackOverflow文章/问题主题的引用。
答案 2 :(得分:0)
在Appdelegate.m中注释这一行
jsCodeLocation = [[RCTBundleURLProvider sharedSettings]jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
使用此行
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
然后运行一个命令来制作一个jsbundle: -
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
希望它能帮到你。!