React-Native iOS应用程序 - 在设备上运行...错误消息:不存在捆绑URL

时间:2018-04-01 17:31:03

标签: ios xcode react-native react-redux react-native-router-flux

我构建了一个在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(我这样做)可能会对这个过程产生一些影响,但也不确定会有什么相关的修复。

谢谢!

3 个答案:

答案 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

希望它能帮到你。!