Permalink
Find file Copy path
386986a May 24, 2017
2 contributors

Users who have contributed to this file

@tdzl2003 @sunnylqm
72 lines (40 sloc) 4.01 KB

常见问题

报错 NDK not configured.

你需要下载并安装NDK,然后设置到环境变量ANDROID_NDK_HOME中。

报错 Execution failed for task ':react-native-update:compileReleaseNdk'

参看 https://github.com/reactnativecn/react-native-pushy/issues/64#issuecomment-287967742  

iOS报错 Unable to execute JS call: __fbBatchedBridge is undefined

如果直接修改了jsCodeLocation,将不能在iOS模拟器上运行。可以使用真机测试。要在发布之前测试热更新功能,可以用adhoc方式发布测试包并进行测试。adhoc发布的包可以用于uploadIpa和生成差异包。

XCode报错 "_BZ2_bzRead", referenced from 等

在工程target的Build Phases->Link Binary with Libraries中加入libz.tbd、libbz2.1.0.tbd

高级指南

过期的版本

你可以删除掉过期很久的版本。在一段时间后,版本会被真正清理。

如果有用户还处在已经被清理的版本上,当他发起更新的时候,将不能通过版本差异比对进行更新,即只能进行全量更新。

CI的集成

在开发环境中,每次bundle都会生成一个不同名字的ppk文件,这不利于持续集成(CI)系统的引入。

要解决这个问题,你可以使用--output参数来指定输出ppk文件的名字和路径,便于进行自动发布。

版本测试与发布

我们强烈建议您先发布一个测试包,再发布一个除了版本号以外均完全相同的发布包。 在每次往发布包发起热更新之前,先往对应的测试包进行更新操作,基本测试通过之后,可以将发布包更新到完全相同的热更新版本之上。 如果在测试包中发现了重大问题,你就可以先进行修复,再次更新测试通过后,再将发布包更新至修复后的版本。 这样,可以最大程度的避免用户通过热更新获得一个有问题的版本。

元信息(Meta Info)的使用

在发布热更新版本时,或者在网页端,你可以编辑版本的元信息。 这是一段在检查更新时可以获得的字符串,你可以在其中按你所想的格式保存一些信息。

举例来说,可能某个版本包含一些重要的更新内容,所以用户会得到一个不同样式的通知。如何使用元信息,完全取决于您的想象力!

下面会列举一些实战中更有意义的元信息的使用。

Hot-fix

有时候我们不小心发布了一个有严重问题的版本,所以需要进行一个紧急的修复, 此时我们可能希望之前已经更新到有问题版本的用户进行紧急甚至静默进行更新。

这时候,我们可以在元信息中包含有问题的版本的列表,而在客户端检查更新时,将从元信息里取到的列表与当前版本(currentVersion)比对, 如果匹配成功,我们就进行静默更新,否则则按照一般的更新流程提示用户。

这个热更新服务收费吗?

目前我们的热更新服务完全免费,但限制每个账号不超过3个应用;每个应用不超过10个活跃的包和100个活跃的热更新版本;每个应用每个月不超过10000次下载。iOS和Android版本记做不同的应用。

已经移除的应用、包版本、热更新版本不在统计之列,所以你可以移除测试时产生的和已过期版本来更有效的利用空间。

我们会在将来推出付费的升级版本,针对用户量较大、版本迭代较快的用户提供扩容方案。如果您有急迫的需求,可以联系我们

我是否可以搭建自己的热更新服务?

你可以单独使用本组件的原生部分(不包括js模块)和命令行工具中的bundlediffdiffFromIpadiffFromApk四个功能。

这些功能都不会使用我们的热更新服务,也无需注册或登录账号。但你可能要编写自己的js模块来与不同的热更新服务器通讯。

如果您有兴趣使用我们的成果,搭建私有云服务,可以联系我们