【ReactNative】打包离线IOS应用

时间:2016-11-20 09:18:37

ReactNative如何打包离线的IOS应用。

对于刚入手ReactNative的同学来说,从环境的安装,到开发调试,再到打包发布到各大应用平台,都需要 一个一个去尝试。

如果有原生App的开发经验,这个打包相对而言会比较简单,但是对于一个搞前端的人来说。苦逼啊。 不说了,开始教程吧。

记录下今天学习的过程。

时间:2016-12-06 23:20:12
今天尝试了构建离线IOS应用,这里记录下构建过程。

一、构建离线版本

1. 构建 index.bundle.js

在工程根目录下执行打包命令,比如

// entry-file IOS应用的入口文件
//bundle-output 输出在什么目录下

react-native bundle --entry-file index.ios.js --bundle-output ./ios/index.ios.jsbundle --platform ios --assets-dest ./ios --dev=false

请参考上面命令说明,根据自己的情况进行修改再执行

构建完成效果图:


【ReactNative】打包离线IOS应用_第1张图片

2. 把构建好的文件添加到XCode项目中

默认就是 create folder references
在xcode中添加assets【必须用Create folder references的方式,添加完是蓝色文件夹图标】和index.ios.jsbundle,如图


【ReactNative】打包离线IOS应用_第2张图片

3. 修改 AppDelegate.m

//修改IOS应用的入口文件,开发时是使用 IP地址的JS文件

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"index.ios" withExtension:@"jsbundle"];

替换后效果


【ReactNative】打包离线IOS应用_第3张图片

4. 设置build的项目为 release 版本

Product=>Scheme=>Edit Scheme


【ReactNative】打包离线IOS应用_第4张图片
【ReactNative】打包离线IOS应用_第5张图片

5. 在Xcode 运行

点击运行,然后关掉命令行,模拟器里面还是可以运行,并不依赖 8081端口的js文件, 这时已经构建离线版本IOS了。

此时,命令行已经关掉了,模拟器运行还是完好的。


【ReactNative】打包离线IOS应用_第6张图片

二、ios打包遇到的问题

  • 离线包如果开启了chrome调试,会访问调试服务器,而且会一直loading出不来。

  • 如果bundle的名字是main.jsbundle,app会一直读取旧的,改名就好了。。。非常奇葩的问题,我重新删了app,clean工程都没用,就是不能用main.jsbundle这个名字。

  • 必须用Create folder references【蓝色文件夹图标】的方式引入图片的assets,否则引用不到图片

  • 执行bundle命令之前,要保证相关的文件夹都存在

三、如何让iphone真机安装【没有iphone,未测试过】

  1. Xcode7.3可以无需IOS证书安装到iPhone Device;
  1. 手机应用中设置信任,正常下就可以打开了,这样子就不用链接服务器调试了;

附:http://makeappicon.com/ 快速生成IOS图标(准备一张1024X024 png的图片),弹窗Donwload 右下角有个Later,关闭后就可以使用了

参考文章

  1. React Native ios打包
  2. ReactNative打离线包-ios篇
  3. ReactNative打离线包-ios篇
  4. React Native 离线打包IOS版

你可能感兴趣的:(【ReactNative】打包离线IOS应用)