mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-09-16 10:51:38 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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。
|
||||
|
@@ -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");
|
||||
|
@@ -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版本记做不同的应用。
|
||||
|
@@ -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 | 尚不支持
|
||||
|
||||
|
||||
安装命令示例:
|
||||
```
|
||||
|
Reference in New Issue
Block a user