1
0
mirror of https://gitcode.com/gh_mirrors/re/react-native-pushy.git synced 2025-09-16 10:51:38 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee

Merge remote-tracking branch 'origin/master'

This commit is contained in:
dengyun
2017-09-22 22:09:54 +08:00
4 changed files with 28 additions and 29 deletions

View File

@@ -11,8 +11,9 @@ React Native版本 | react-native-update版本
<= 0.26 | 1.0.x
0.27 - 0.28 | 2.x
0.29 - 0.33 | 3.x
0.34 - 当前  |   4.x
0.34 - 0.44  |   4.x
0.45         |   尚不支持
 
### 优势
1. 命令行工具&网页双端管理版本发布过程简单便捷完全可以集成CI。

View File

@@ -124,15 +124,15 @@ public class UpdateModule extends ReactContextBaseJavaModule{
Application application = activity.getApplication();
ReactInstanceManager instanceManager = ((ReactApplication) application).getReactNativeHost().getReactInstanceManager();
if (instanceManager.getClass().getSimpleName().equals("XReactInstanceManagerImpl")) {
JSBundleLoader loader = JSBundleLoader.createFileLoader(UpdateContext.getBundleUrl(application));
Field jsBundleField = instanceManager.getClass().getDeclaredField("mBundleLoader");
jsBundleField.setAccessible(true);
jsBundleField.set(instanceManager, loader);
} else {
try {
Field jsBundleField = instanceManager.getClass().getDeclaredField("mJSBundleFile");
jsBundleField.setAccessible(true);
jsBundleField.set(instanceManager, UpdateContext.getBundleUrl(application));
} catch (Throwable err) {
JSBundleLoader loader = JSBundleLoader.createFileLoader(UpdateContext.getBundleUrl(application));
Field loadField = instanceManager.getClass().getDeclaredField("mBundleLoader");
loadField.setAccessible(true);
loadField.set(instanceManager, loader);
}
final Method recreateMethod = instanceManager.getClass().getMethod("recreateReactContextInBackground");

View File

@@ -1,8 +1,19 @@
## 常见问题
#### 0.27以上版本RN报错问题
#### 报错 NDK not configured.
升级到1.1.x即可解决
你需要下载并安装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
## 高级指南
@@ -42,20 +53,6 @@
这时候,我们可以在元信息中包含有问题的版本的列表,而在客户端检查更新时,将从元信息里取到的列表与当前版本(currentVersion)比对,
如果匹配成功,我们就进行静默更新,否则则按照一般的更新流程提示用户。
## 常见问题
#### 报错 NDK not configured.
你需要下载并安装NDK然后设置到环境变量`ANDROID_NDK_HOME`中。
#### 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
#### 这个热更新服务收费吗?
目前我们的热更新服务完全免费但限制每个账号不超过3个应用每个应用不超过10个活跃的包和100个活跃的热更新版本每个应用每个月不超过10000次下载。iOS和Android版本记做不同的应用。

View File

@@ -6,20 +6,19 @@
所以我们也假设你已经拥有了开发React Native应用的一切环境包括`Node.js``npm``XCode``Android SDK`等等。
如果你之前没安装过,你还必须安装[Android NDK](http://androiddevtools.cn),并设置环境变量`ANDROID_NDK_HOME`指向你的NDK根目录(例如`/Users/tdzl2003/Downloads/android-ndk-r10e`)。
如果你之前没安装过,你还必须安装[Android NDK](http://androiddevtools.cn)版本最好选用r10e并设置环境变量`ANDROID_NDK_HOME`指向你的NDK根目录(例如`/Users/tdzl2003/Downloads/android-ndk-r10e`)。
## 安装
在你的项目根目录下运行以下命令:
```bash
npm install -g react-native-update-cli rnpm
npm install -g react-native-update-cli
npm install --save react-native-update@具体版本请看下面的表格
react-native link react-native-update
```
`npm install -g react-native-update-cli rnpm`这一句在每一台电脑上仅需运行一次。
如果RN版本低于0.29,请使用`rnpm link`代替`react-native link`命令。
`npm install -g react-native-update-cli`这一句在每一台电脑上仅需运行一次。
* 注意 *
@@ -38,7 +37,9 @@ React Native版本 | react-native-update版本
<= 0.26 | 1.0.x
0.27 - 0.28 | 2.x
0.29 - 0.33 | 3.x
0.34 - 当前  |   4.x
0.34 - 0.44  |  4.x
0.45         |  尚不支持
安装命令示例:
```