CodePush详细对接教程可参见:https://www.jianshu.com/p/6a5e00d22723
npm install -g code-push-cli:安装工具
yarn add react-native-code-push
或者
npm install --save react-native-code-push
集成到项目中
react-native link react-native-code-push:连接到应用
code-push register:注册
code-push login :登陆
code-push login 自定义服务器网址 :登陆
code-push logout: 注销
code-push access-key ls 列出登陆的token
code-push access-key rm <accessKye> 删除某个 access-key
如果登录过程中可能会出现问题如下问题:
在终端输入:code-push login,
如果出现[Error] You are already logged in from this machine.
在终端试着输入命令:code push logout,
如果出现[Error] connect ECONNREFUSED 127.0.0.1:3000错误,
可以直接删除 ~/.code-push.config文件
.code-push.config 文件默认为隐藏文件,可通过如下命令设置显示
1、
(设置隐藏文件可见)
defaults write com.apple.finder AppleShowAllFiles TRUE
(设置隐藏文件不可见)
defaults write com.apple.finder AppleShowAllFiles FALSE
2、
(终端执行命令重启Finder)
killall Finder
code-push app 相关命令
code-push app add MyApp ios react-native:添加 ios 应用
code-push app add MyApp android cordova:添加安卓应用
code-push app add MyApp windows react-native:添加 windows应用
code-push app remove MyApp:移除应用
code-push app rename oldName newName:重命名一个存在app
code-push app list :或则 ls 列出账号下面的所有app
部署APP相关命令
code-push deployment add <appName> [deploymentName]
code-push deployment add <appName> -d:部署--default, -d Add the default "Staging" and "Production" deployments
code-push deployment rename <appName>: 重命名
code-push deployment rm <appName> <deploymentName> :删除部署
code-push deployment ls <appName> :列出应用的部署情况
code-push deployment ls <appName> -k: 查看部署的key
code-push deployment history <appName> <deploymentNmae> :查看历史版本(Production 或者 Staging)
code-push rollback <appName> <deploymentNmae> --targetRelease <v> :回退版本
打包
进入工程根目录:
react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./release/ios/main.jsbundle --assets-dest release/ios
需要现在根目录下添加 release/ios 目录
参数说明:
--entry-file 指定入口文件 因为要打包ios平台,所以指定为rn项目的index.ios.js作为入口
--bundle-output 指定输出的jsbundle文件路径和文件名 指定到rn项目的ios工程文件夹下,记得一定要先创建bundle文件夹,不然终端会报文件夹找不到的错误
--platform 指定平台类型
--assets-dest 指定资源文件夹路径 assets文件夹的路径,包含图片、node模块等资源
--dev 是否为开发模式 如果设置为false,不会产生警告,并且bundle会被压缩
发布
code-push release FirstApp-ios ./release/ios 版本号 -d Production
默认不写 -d 表示 Staging 环境