You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
android {
...
buildTypes {
debug {
...
// Note: CodePush updates should not be tested in Debug mode as they are overriden by the RN packager. However, because CodePush checks for updates in all modes, we must supply a key.
buildConfigField "String", "CODEPUSH_KEY", '""'
...
}
releaseStaging {
...
buildConfigField "String", "CODEPUSH_KEY", '"<INSERT_STAGING_KEY>"'
...
}
release {
...
buildConfigField "String", "CODEPUSH_KEY", '"<INSERT_PRODUCTION_KEY>"'
...
}
}
...
}
What is CodePush
React Native 应用程序的主要组成是 JavaScript 文件和附属的图片资源。然后由 packager 将它们和特定平台程序打包成二进制文件(
.ipa
或.apk
)。CodePush 相当于一个中心仓库,将 JavaScript 文件和图像资源打包上传到CodePush服务器。由App程序在设置的时间获取服务器上更新的数据、执行更新。
通过CodePush,在 JavaScript 层面上的改动可以快速升级迭代,无需重新发布到App Store、Google Play 等应用商店。
安装 CodePush CLI
CodePush CLI 是用于上传、发布包到CodePush服务器的终端工具,同时也提供方便的功能执行打包命令。
关于CodePush CLI 官方有完善的**中文文档**,这里列出注册流程和一些常用的命令。
注册流程:
相关命令:
查看应用deployment key
CodePush中,每个app 默认有两个 deployment key,App使用不同的Key,可以取到不同key上的包。一般使用 Staging 作为测试使用,Production 用来发布生产。
deployment key 写在原生代码中,用来作为服务器获取更新的标志。可以通过配置打不同的包使用不同的key(后面会说到)。
在项目中安装 CodePush
安装 react-native-code-push
link react-native-code-push
同时配置了 IOS、Android
IOS 配置 deployment key
deployment key 可以在Info.plist中直接设置,但是为了方便测试,添加一个打包配置用于区分Staging和Production是非常有用的。
打开你的 Xcode 项目,并在Project Navigator 窗口中选择你的项目
确保选择了PROJECT节点,而不是其中一个TARGETS
选择 Info 标签
单击
Configurations
部分中的+
按钮,然后选择复制Release
配置重命名这个配置为
Staging
(或者任何你喜欢的)选择
Build Settings
标签找到
Build Location -> Per-configuration Build Products Path -> Staging
把 Staging 的值修改为$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)
(之前是$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
)点击工具栏上的
+
按钮,然后选择Add User-Defined Setting
将这个新设置命名为
CODEPUSH_KEY
,将其展开,并为发布配置指定Staging
配置的Staging
deployment key和Production
deployment key。deployment key可以通过
code-push deployment ls <APP_NAME> -k
获取打开项目的Info.plist文件并将
CodePushDeploymentKey
条目的值更改为$(CODEPUSH_KEY)
现在,当运行或构建应用程序时,Staging 版本将自动配置为与 Staging 部署同步,并且发布版本将配置为与Production 部署同步。
Android 配置 deployment key
同样根据步骤:
android/app/build.gradle
)android { buildTypes {} }
部分,并为调试版本和发布版本类型定义buildConfigField
条目,分别引用Staging
和Production
部署密钥(deployment key)。打开
MainApplication.java
,做如下修改现在,当运行或构建应用程序时,
ReleaseStaging
版本将自动配置为与Staging
部署同步,并且Release
版本将配置为与Production
部署同步。App 查询更新
在原生代码部署完成后,唯一需要确定的是App需要在何时与CodePush通信,获取更新。最简单的方法就是通过在包裹根组件的方式:
还可以根据需要配置查询更新频率:
也可以手动查询,例如:
部署
上传到 CodePush
在项目目录执行
默认发布到
Staging
,使用-d
选择deployment注意:这里版本号使用的是现在原生项目中的版本号,也可以指定版本号
版本号可以使用范围表达式。
这部分有详细的中文文档:参考链接
The text was updated successfully, but these errors were encountered: