参考链接:http://blog.csdn.net/oiken/article/details/50279871
CodePush 热更新React-Native步骤
1. 开VPN ,cd 到项目根目录下执行:npm install react-native-code-push –save (如果npm执行不了,因为网络原因,请使用cnpm来代替)
2. 检查安装结果:
(1),package.json 文档是否加入了
“dependencies”: {
“react-native”: “^0.16.0”,
“react-native-code-push”: “^1.4.2-beta”
}
(2): node_modules 下有 react-native-code-push 文件夹,里面有 CodePush.xcodeproj 这个文件
3. 用Xcode 打开项目,点开Libraries 目录, 打开项目根目录下的 /node_modules/react-native-code-push , 把文件 CodePush.xcodeproj 拉入 上面的Libraries 目录下作为依赖项目
打开 Xcode的项目-》target -》Build Phase -》 Link Binary With Libraries
把刚才拖进去的子项目CodePush.xcodeproj 点开,找到Products 目录,把红色的libCodePush.a拉进去
4. 点击 Link Binary With Libraries 下面的加号, 查找 libz , 选中iOS 9.1 下面的 libz.tbd
5.选择上面的标题为 Build Setings 查找Header Search Path, 双击值,弹出列表界面,
点击加号, 输入 $(SRCROOT)/../node_modules/react-native-code-push
选择后面的 recursive 选项
6. 打开 AppDelegate.m ,
添加 #import “CodePush.h”
找到: //jsCodeLocation = [[NSBundle mainBundle] URLForResource:@”main” withExtension:@”jsbundle”];
写上 jsCodeLocation = [CodePush bundleURL];
实现更新策略,
a,多久多频繁去check 更新,例如app 启动时,还是在setting 页面点击更新,或定时去更新
b,当一个更新出现,如何向用户展现
在JavaScript 文件里加入:var CodePush = require(“react-native-code-push”);
7. 接下来是安装 code-push 服务器端 执行命令:npm install -g code-push-cli
可以试试看看Code-push版本:code-push -v
8. 注册Code-Push 账号:在终端输入: code-push register 弹出网页,然后选择github ,确认授权后得到一个token 在终端输入你的token值:Enter your access token: XXXXXXXXXXX
Successfully logged-in. Your session token was written to /Users/mac/.code-push.config. You can run the code-push logout command at any time to delete this file and terminate your session.
- 使用code-push服务器
登录:code-push login
注销 :code-push logout
列出登录的token :code-push access-key ls
删除某个access-key:code-push access-key rm - 将app添加到Code-push:code-push app add appname(appname为你自己的项目名),
然后列出来查看:code-push app ls - 打bundles包:执行命令:react-native bundle –parameter ios –entry-file index.ios.js –bundle-output ./bundles/appJsName.js(appJsName 为你自己起的jsbundle名)
- 提交到Code-push :code-push release SwitchCheck ./bundles/appJsName.js 1.0.0 –deploymentName Staging –description ‘Edit index.ios.js 4 mandatory to test Code-Push’ –mandatory true
然后运行一下:就能看到结果啦
详细教程请看:http://blog.csdn.net/oiken/article/details/50279871