Blog
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)

HiuZing

🍑
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)
  • 前端面试题

  • JavaScript

  • Vue2

  • port

  • CSS

  • Node.js

  • JavaScript优化

  • uniapp

  • Mini Program

  • TypeScript

  • 面向对象编程

  • UI组件

  • Plugin

  • Vue3

  • 性能优化

  • Axios

  • 状态管理

  • React

  • Mock

  • Icon

  • Template

  • 构建工具

  • 项目规范配置

  • Taro

  • SVG

  • React Native

    • 沙盒环境-Expo

    • 原生环境

    • 打包发布

      • CodePush
        • 简介
        • 安装
        • 集成
          • 多部署测试
        • 快速开始
        • 账户管理
          • 创建帐户
          • 身份认证
          • 确定自己是否已登录
          • 退出登录
        • 应用管理
          • 注册应用程序
          • 列出所有Apps
          • 重命名
          • 删除
        • 部署管理
          • Android
          • ios
          • 查看特定应用程序包含的部署列表
        • 热更新
          • 更新策略
          • 发布更新
        • 打包发布
          • Android
          • iOS
    • React Native第三方库
  • 前端
  • React Native
  • 打包发布
HiuZing
2025-06-22
目录

CodePush

# 简介

CodePush 是微软提供的一套用于热更新React Native和Cordova应用的服务。

CodePush 是提供给React Native和Cordova开发者直接部署移动应用更新给用户设备的云服务。CodePush作为一个中央仓库,开发者可以推送更新(JS, HTML, CSS and images),应用可以从客户端 SDK 里面查询更新。CodePush可以让应用有更多的可确定性,也可以让你直接接触用户群。在修复一些小问题和添加新特性的时候,不需要经过二进制打包,可以直接推送代码进行实时更新。

# 安装

服务器部署:https://github.com/shm-open/code-push-server?tab=readme-ov-file

RN前端部署: https://github.com/microsoft/react-native-code-push v7.1.0稳定版,适配RN V0.70

项目配置cli脚手架:https://github.com/shm-open/code-push-cli <v3


npm install --save react-native-code-push

# 脚手架
npm install -g @shm-open/code-push-cli
1
2
3
4
5

# 集成

# Android

要将 CodePush 集成到您的 Android 项目中

react-native-code-push/docs/setup-android.md at master · microsoft/react-native-code-push (opens new window)

# iOS

获取 CodePush 插件后,您需要将其集成到 React Native 应用的 Xcode 项目中并进行正确配置

react-native-code-push/docs/setup-ios.md at master · microsoft/react-native-code-push (opens new window)

# 多部署测试

# Android

配置了“多部署测试”功能

react-native-code-push/docs/multi-deployment-testing-android.md at master · microsoft/react-native-code-push (opens new window)

# iOS

Xcode 允许您为每个“配置”(例如 debug、release)定义自定义构建设置

react-native-code-push/docs/multi-deployment-testing-ios.md at master · microsoft/react-native-code-push (opens new window)

# 快速开始

  1. 使用CodePush CLI创建一个CodePush 账号 (opens new window)
  2. 注册你的CodePush应用 (opens new window), 并分享 (opens new window)给你团队的其它开发者
  3. 用Cordova插件 (opens new window) 或 React Native插件 (opens new window)配置好CodePush并指向你希望的部署环境 注意:在iOS和Android使用自定义的ServerURL参数名大小写不同,iOS是在plist里新增CodePushServerURL,Android是在res/values/strings.xml 添加CodePushServerUrl
  4. 发布 (opens new window)更新
  5. 活的长而成功!详细资料 (opens new window)

# 账户管理

在开始发布应用更新之前,您需要创建一个 CodePush 帐户。

安装 CLI 后

# 创建帐户

code-push register
1

# 身份认证

code-push login
1

如果您需要在不启动浏览器

code-push login --accessKey <accessKey>
1

# 确定自己是否已登录

code-push whoami
1

# 退出登录

code-push logout
1

# 应用管理

# 注册应用程序

code-push app add <appName> <os> <platform>

code-push app add MyApp-Android android react-native
code-push app add MyApp-iOS ios react-native
1
2
3
4

# 列出所有Apps

code-push app ls
1

# 重命名

code-push app rename <appName> <newAppName>
1

# 删除

code-push app rm <appName>
1

# 部署管理

# Android

react-native-code-push/docs/multi-deployment-testing-android.md at master · microsoft/react-native-code-push (opens new window)

# ios

react-native-code-push/docs/multi-deployment-testing-ios.md at master · microsoft/react-native-code-push (opens new window)

# 查看特定应用程序包含的部署列表

code-push deployment ls <appName> [--displayKeys|-k]

code-push deployment ls MyApp-iOS -k
1
2
3

Deployment list

# 热更新

# 更新策略

加载模块,调用sync方法,后台请求更新codepush.sync()

及时获得更新,从后台进入前台主动更新

AppState.addEventListener("change", (newState)=>{
    newState === "active" && codepush.sync()
})

# 有新包更新的时候,调用
const update = await checkCodePushUpdate();

# 点击下载
await codePush.sync(
    {
        updateDialog: false as any,
        installMode: codePush.InstallMode.IMMEDIATE,
        mandatoryInstallMode: codePush.InstallMode.IMMEDIATE,
    },
    (status) => {
        console.log('CodePush status:', status);

        if (status === codePush.SyncStatus.UPDATE_INSTALLED) {
            codePush.restartApp(); // ✅ 核心
        }

        if (
            status === codePush.SyncStatus.UP_TO_DATE ||
            status === codePush.SyncStatus.UNKNOWN_ERROR
        ) {
            setShowProgress(false);
        }
    },
    (progress) => {
        if (progress?.totalBytes) {
            setProgress(progress.receivedBytes / progress.totalBytes);
        }
    }
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 发布更新

shm-open/code-push-cli: A fork of code-push-cli tool to work with open source code-push-server (opens new window)

code-push release-react <appName> <platform>
[--bundleName <bundleName>]
[--deploymentName <deploymentName>]
[--description <description>]
[--development <development>]
[--disabled <disabled>]
[--entryFile <entryFile>]
[--gradleFile <gradleFile>]
[--mandatory]
[--noDuplicateReleaseError]
[--outputDir <outputDir>]
[--plistFile <plistFile>]
[--plistFilePrefix <plistFilePrefix>]
[--sourcemapOutput <sourcemapOutput>]
[--sourcemapOutputDir <sourcemapOutputDir>]
[--targetBinaryVersion <targetBinaryVersion>]
[--rollout <rolloutPercentage>]
[--privateKeyPath <pathToPrivateKey>]
[--config <config>]

code-push release-react TropsSoccer-Android android -d dev --description "1.Hotfix v1.0.5 \n 2.Hotfix xxxx"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 打包发布

# Android

根据不同环境()

# aab
./gradlew bundleReleaseStaging

# apk
./gradlew assembleReleaseStaging
1
2
3
4
5

# iOS

上次更新: 2026/01/07, 08:34:45
React Native打包apk后无法进行网络请求
React Native第三方库

← React Native打包apk后无法进行网络请求 React Native第三方库→

最近更新
01
GitHub Actions
12-22
02
分享社区
12-16
03
保存镜像
12-16
更多文章>
Theme by Vdoing | Copyright © 2021-2026 WeiXiaojing | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式