/code-push-server

CodePush service is an app hot update service which is compatible with react-native-code-push and other CodePush clients

Primary LanguageTypeScriptMIT LicenseMIT

CodePush Server Node.js CI

[Chinese version 中文版]

CodePush Server is a CodePush program server. The official Microsoft CodePush service is slow in China, therefore we use this to host our own server.

About this fork

Since the original code-push-server project is not actively maintained, we created this fork to:

  • keep dependencies up-to-date
  • fix any compatiblity issue with latest official code-push clients
  • we only stick to official react-native-code-push client, therefore the customized feature like is_use_diff_text won't be supported.
  • we only use react-native-code-push client in production, most of the feature should be no difference for the rest CodePush clients, but if you found any, issues and PRs are always welcome.

Support Storage mode

  • local: store bundle files in local machine
  • qiniu: store bundle files in qiniu
  • s3: store bundle files in aws
  • oss: store bundle files in aliyun
  • tencentcloud: store bundle files in tencentcloud

Correct use of code-push hot update

  • Apple App allows the use of hot updates Apple's developer agreement, in order not to affect the user experience, it is stipulated that silent updates must be used. Google Play cannot use silent updates, and a pop-up box must inform users that there is an update to the app. China's android market must use silent updates (if the pop-up box prompts, the app will be rejected by the reason of "please upload the latest version of the binary application package").
  • The bundles of react-native are different for different platforms. When using code-push-server, you must create different applications to distinguish them (eg. CodePushDemo-ios and CodePushDemo-android)
  • react-native-code-push only updates resource files, not java and Objective C, so when npm upgrades the version of the dependent package, if the localized implementation used by the dependent package, the application version number must be changed at this time (ios modify Info CFBundleShortVersionString in .plist, android modify versionName in build.gradle), then recompile the app and publish it to the app store.
  • It is recommended to use the code-push release-react command to release the application, which combines the packaging and release commands (eg. code-push release-react CodePushDemo-ios ios -d Production)
  • Every time a new version is submitted to the App Store, an initial version should also be released to code-push-server based on the submitted version. (Because every time a version is released to code-push-server, code-puse-server will compare it with the initial version to generate a patch version)

CodePush Cli

check out the code-push-cli which works with server for manage apps and publish releases

Clients

How To Install code-push-server

Default Account and Password

  • account: admin
  • password: 123456

FAQ