0

在尝试构建 ios 客户端时react-native,我修改了部分AppDelegate.m文件,如下所示(即,将选项 1 替换为选项 2):

// OPTION 1
  // Load from development server. Start the server from the repository root:
  //
  // $ npm start
  //
  // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and
  // iOS device are on the same Wi-Fi network.
  //jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];

  // OPTION 2
  // Load from pre-bundled file on disk. To re-generate the static bundle, run
  //
  // $ curl http://localhost:8081/index.ios.bundle -o main.jsbundle
  //
  // and uncomment the next following line
  jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

我下载main.jsbundleiOS所在的文件夹AppDelegate.m

$ ls iOS
AppDelegate.h   Base.lproj      Info.plist      main.m
AppDelegate.m   Images.xcassets main.jsbundle

但是,如果我在 XCode 中再次构建并运行它ios simulator,它会暂停main.m并出现以下错误:

2015-03-31 12:46:28.877 AwesomeProject[26849:1320518] * 断言失败 -[RCTRootView initWithBundleURL:moduleName:launchOptions:], /Users/yourname/scripts/code/startup/reactnative/AwesomeProject/node_modules/react- native/React/Base/RCTRootView.m:82 2015-03-31 12:46:28.883 AwesomeProject[26849:1320518] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“创建 RCTRootView 需要 bundleURL”

所以,它似乎在抱怨bundleURL。我将感谢帮助确定问题所在。

4

1 回答 1

6

您需要将文件添加到项目中。为此,您需要右键单击项目名称并选择“将文件添加到 MyProject...”。然后选择main.jsbundle

然后构建您的项目,它应该可以工作。

请参阅:如何为 iPhone 构建 React Native App?

于 2015-03-31T17:19:23.727 回答