1. 打开AppDelegate.m,将
jsCodeLocation = [[RCTBundleURLProvidersharedSettings] jsBundleURLForBundleRoot:@"index.ios"fallbackResource:nil];
新加一行:
jsCodeLocation = [[NSBundle mainBundle]URLForResource:@"index.ios" withExtension:@"jsbundle"];
如果需要切换回模拟器调试,只需要将新加这行注释掉,并恢复原代码即可。
新加这行代码大概意思就是告诉native rn代码的入口,接下来我们来生成Jsbundle。
在执行第二步之前你需要到Rn项目的ios目录下面建立一个bundle文件夹。否则执行下面的语句会报错(文件夹不存在)。
2.打开终端,进入你的rn工程,在根目录下执行bundle命令:
react-native bundle --entry-file ./index.ios.js--bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest./ios/bundle --dev false
参数说明:
--entry-file 指定入口文件 因为要打包ios平台,所以指定为rn项目的index.ios.js作为入口
--bundle-output 指定输出的jsbundle文件路径和文件名 指定到rn项目的ios工程文件夹下,记得一定要先创建bundle文件夹,不然终端会报文件夹找不到的错误
--platform 指定平台类型
--assets-dest 指定资源文件夹路径 assets文件夹的路径,包含图片、node模块等资源
--dev 是否为开发模式 如果设置为false,不会产生警告,并且bundle会被压缩
3.用xcode打开项目,然后将bundle中的所有东西拖到项目下,记得选create folderreferences。
4.配置网络访问白名单。想了解请到参考文章网址 [1]。。。
5.调整xcode的Xcode-->Product-->Scheme-->Edit Scheme...
然后在 Run-->Info-->Build Configuration 中选择Release
参考的文章网址:
[1.] http://blog.csdn.net/ailongyang/article/details/54866469//这个网址主要参考jsbundle的处理,上面如果我写的不懂你可以点进去看看。
[2.] http://www.jianshu.com/p/2b1c14f1a9a8 //这个网址主要参考模式调整