尝试生成预捆绑文件时出现 BundleURL 错误
BundleURL error when trying to generate pre-bundled file
尝试在 react-native
中构建 ios 客户端时,我修改了 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.jsbundle
下载到 AppDelegate.m
所在的 iOS
文件夹。
$ 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] * Assertion
failure in -[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] * Terminating
app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'A bundleURL is required to create an RCTRootView'
所以,好像是在抱怨bundleURL
。如果能帮助我确定问题所在,我将不胜感激。
您需要将文件添加到项目中。
为此,您需要 右键单击项目名称 和 select "Add files to MyProject…"。然后选择main.jsbundle。
然后构建您的项目,它应该可以工作。
参见:
尝试在 react-native
中构建 ios 客户端时,我修改了 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.jsbundle
下载到 AppDelegate.m
所在的 iOS
文件夹。
$ 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] * Assertion failure in -[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] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'A bundleURL is required to create an RCTRootView'
所以,好像是在抱怨bundleURL
。如果能帮助我确定问题所在,我将不胜感激。
您需要将文件添加到项目中。 为此,您需要 右键单击项目名称 和 select "Add files to MyProject…"。然后选择main.jsbundle。
然后构建您的项目,它应该可以工作。
参见: