加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React Native工程离线运行(ios)

发布时间:2020-12-15 04:41:01 所属栏目:百科 来源:网络整理
导读:React Native工程离线运行的重点是将index.ios.bundle文件保存在机器本地,index.ios.bundle文件是工程编译后的js文件的打包,index.ios.bundle 将被 packager服务器 创建。。 纯RN工程 纯RN工程在工程创建好后就XCode目录中就包含了main.jsbundle文件,只不

React Native工程离线运行的重点是将index.ios.bundle文件保存在机器本地,index.ios.bundle文件是工程编译后的js文件的打包,index.ios.bundle 将被 packager服务器 创建。。

纯RN工程

纯RN工程在工程创建好后就XCode目录中就包含了main.jsbundle文件,只不过文件是不存在的(XCode文件名红色),这个文件就是编译的时候由packager服务器打包好的index.ios.bundle文件。

修改AppDelegate.m中的jsCodeLocation

注释掉

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

取消注释

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

打包

纯RN工程离线运行只要按照正常的流程打包app即可,因为index.ios.bundle在打包过程中会自动生成并绑定到main.jsbundle,离线运行时就会根据jsCodeLocation找到js文件了。

混编工程

由于混编工程一开始是由XCode创建的,并不存在main.jsbundle文件,因此需要手动generate。

生成本地main.jsbundle

在项目根目录下执行

curl http://localhost:8081/index.ios.bundle -o main.jsbundle

如果curl命令执行失败,请确保服务器已开启,否则提示8081端口8081无法连接。
执行成功后工程目录中就多了main.jsbundle文件,然后将他拖到XCode中。

设置jsCodeLocation指向本地main.jsbundle文件

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

打包

也是正常的打包流程。

其他

如果不希望在离线时调试,确保打包之前将scheme中的archive模式设置成release,这样就不会弹出调试菜单了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读