Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

code-push-server

lisong543MIT5.7.1

CodePush service is hotupdate services which adapter react-native-code-push and cordova-plugin-code-push

code-push, react-native, cordova, services, code, push

readme

CodePush Server source

NPM

NPM Version Node.js Version Linux Status Windows Status Coverage Status Dependency Status Known Vulnerabilities Licenses

CodePush Server is a CodePush progam server! microsoft CodePush cloud is slow in China, we can use this to build our's. I use qiniu to store the files, because it's simple and quick! Or you can use [local/s3/oss/tencentcloud] storage, just modify config.js file, it's simple configure.

Support Storage mode

  • local storage bundle file in local machine
  • qiniu storage bundle file in qiniu
  • s3 storage bundle file in aws
  • oss storage bundle file in aliyun
  • tencentcloud storage bundle file in tencentcloud

qq交流群

  • QQ群: 628921445
  • QQ群: 535491067

正确使用code-push热更新

  • 苹果App允许使用热更新Apple's developer agreement, 为了不影响用户体验,规定必须使用静默更新。 Google Play不能使用静默更新,必须弹框告知用户App有更新。中国的android市场必须采用静默更新(如果弹框提示,App会被“请上传最新版本的二进制应用包”原因驳回)。
  • react-native 不同平台bundle包不一样,在使用code-push-server的时候必须创建不同的应用来区分(eg. CodePushDemo-ios 和 CodePushDemo-android)
  • react-native-code-push只更新资源文件,不会更新java和Objective C,所以npm升级依赖包版本的时候,如果依赖包使用的本地化实现, 这时候必须更改应用版本号(ios修改Info.plist中的CFBundleShortVersionString, android修改build.gradle中的versionName), 然后重新编译app发布到应用商店。
  • 推荐使用code-push release-react 命令发布应用,该命令合并了打包和发布命令(eg. code-push release-react CodePushDemo-ios ios -d Production)
  • 每次向App Store提交新的版本时,也应该基于该提交版本同时向code-push-server发布一个初始版本。(因为后面每次向code-push-server发布版本时,code-puse-server都会和初始版本比较,生成补丁版本)

shell login

$ code-push login http://api.code-push.com #登录

web

访问:http://www.code-push.com

client eg.

ReactNative CodePushDemo

Cordova CodePushDemo

HOW TO INSTALL code-push-server

DEFAULT ACCOUNT AND PASSWORD

  • account: admin
  • password: 123456

HOW TO USE

ISSUES

code-push-server normal solution

An unknown error occurred

modify password

UPDATE TIME LINE

  • targetBinaryVersion support
    • *
    • 1.2.3
    • 1.2/1.2.*
    • 1.2.3 - 1.2.7
    • >=1.2.3 <1.2.7
    • ~1.2.3
    • ^1.2.3

Advance Feature

use google diff-match-patch calculate text file diff patch

  • support iOS and Android
  • use "react-native-code-push": "git+https://git@github.com/lisong/react-native-code-push.git" instead "react-native-code-push": "x.x.x" in package.json
  • change apps.is_use_diff_text to 1 in mysql codepush database

License

MIT License read

changelog

Changelog for code-push-server

0.5.x

新特性

fixbug

  • 修复统计数据激活数
  • 修复灰度发布bug
  • rollback后增加计算和最后一次增量更新版本

如何升级到该版本

升级数据库

$ npm run upgrade

or

$ code-push-server-db upgrade

0.4.x

新特性

  • targetBinaryVersion 支持正则匹配, deployments_versions新增字段min_version,max_version
    • * 匹配所有版本
    • 1.2.3 匹配特定版本1.2.3
    • 1.2/1.2.* 匹配所有1.2补丁版本
    • >=1.2.3<1.3.7
    • ~1.2.3 匹配>=1.2.3<1.3.0
    • ^1.2.3 匹配>=1.2.3<2.0.0
  • 添加docker编排服务部署,更新文档
  • Support Tencent cloud cos storageType

如何升级到该版本

  • 升级数据库 $ ./bin/db upgrade or $ mysql codepush < ./sql/codepush-v0.4.0-patch.sql

  • 处理存量数据

     $ git clone https://github.com/lisong/tools
     $ cd tools
     $ npm i
     $ vim ./bin/fixMinMaxVersion //修改数据配置
     $ node  ./bin/fixMinMaxVersion //出现提示 success

0.3.x

  • 支持灰度发布
  • 适配code-push app add 命令,应用不再以名字区分平台,而是以类型区分平台
    • 数据库表apps新增字段os,platform
  • 完善code-push release/release-react/release-cordova 命令
    • 数据库表packages新增is_disabled,rollout字段
  • 适配code-push patch命令
  • 新增log_report_download,log_report_deploy日志表
  • 升级npm依赖包