mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-10-07 22:45:15 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -28,7 +28,7 @@ $ npm install --save react-native-update
|
|||||||
|
|
||||||
#### pushy diffFromApk <apkFile> <next>
|
#### pushy diffFromApk <apkFile> <next>
|
||||||
|
|
||||||
提供一个apk文件和一个ppk文件,生成从ipa文件到next版本的差异更新包。
|
提供一个apk文件和一个ppk文件,生成从apk文件到next版本的差异更新包。
|
||||||
|
|
||||||
如果使用热更新开放平台,你不需要自己执行此命令。
|
如果使用热更新开放平台,你不需要自己执行此命令。
|
||||||
|
|
||||||
|
@@ -1,9 +1,5 @@
|
|||||||
## 高级指南
|
## 高级指南
|
||||||
|
|
||||||
#### 报错 NDK not configured.
|
|
||||||
|
|
||||||
你需要下载并安装NDK,然后设置到环境变量`ANDROID_NDK_HOME`中。
|
|
||||||
|
|
||||||
#### 过期的版本
|
#### 过期的版本
|
||||||
|
|
||||||
你可以删除掉过期很久的版本。在一段时间后,版本会被真正清理。
|
你可以删除掉过期很久的版本。在一段时间后,版本会被真正清理。
|
||||||
@@ -42,6 +38,18 @@
|
|||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
|
#### 报错 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版本记做不同的应用。
|
目前我们的热更新服务完全免费,但限制每个账号不超过3个应用;每个应用不超过10个活跃的包和100个活跃的热更新版本;每个应用每个月不超过10000次下载。iOS和Android版本记做不同的应用。
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
首先你应该有一个基于React Native开发的应用,我们把具有package.json的目录叫做你的"应用根目录"。
|
首先你应该有一个基于React Native开发的应用,我们把具有package.json的目录叫做你的"应用根目录"。
|
||||||
|
|
||||||
如果你还没有初始化应用,请参阅[开始使用React Native](http://reactnative.cn/docs/0.22/getting-started.html#content)。
|
如果你还没有初始化应用,请参阅[开始使用React Native](http://reactnative.cn/docs/getting-started.html#content)。
|
||||||
|
|
||||||
所以我们也假设你已经拥有了开发React Native应用的一切环境,包括`Node.js`、`npm`、`XCode`、`Android SDK`等等。
|
所以我们也假设你已经拥有了开发React Native应用的一切环境,包括`Node.js`、`npm`、`XCode`、`Android SDK`等等。
|
||||||
|
|
||||||
@@ -11,14 +11,29 @@
|
|||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
在你的项目根目录下运行以下命令(不要输入开头的美元符号):
|
在你的项目根目录下运行以下命令(不要输入开头的美元符号):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ npm install -g react-native-update-cli rnpm
|
$ npm install -g react-native-update-cli rnpm
|
||||||
$ npm install --save react-native-update
|
$ npm install --save react-native-update
|
||||||
$ rnpm link react-native-update
|
$ rnpm link react-native-update
|
||||||
|
```
|
||||||
|
|
||||||
|
`npm install -g react-native-update-cli rnpm`这一句在每一台电脑上仅需运行一次。
|
||||||
|
|
||||||
|
* 注意 *
|
||||||
|
|
||||||
|
如果访问极慢或者显示网络失败,请使用淘宝镜像:
|
||||||
|
```bash
|
||||||
|
npm config set registry https://registry.npm.taobao.org --global
|
||||||
|
npm config set disturl https://npm.taobao.org/dist --global
|
||||||
```
|
```
|
||||||
|
|
||||||
> 其中第一句,在每一台电脑上仅需运行一次。
|
* Windows平台请注意 *
|
||||||
|
|
||||||
|
1、你必须安装python 2.7以及一套C++环境(推荐VS2013或VS2015,VS2010及以前版本不可用)
|
||||||
|
|
||||||
|
2、如果使用VS2015,你需要设置`npm config set msvs_version 2015 --global`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 配置Bundle URL(iOS)
|
## 配置Bundle URL(iOS)
|
||||||
|
|
||||||
@@ -36,9 +51,13 @@ $ rnpm link react-native-update
|
|||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
jsCodeLocation = [RCTHotUpdate bundleURL];
|
// 原来的jsCodeLocation
|
||||||
// ... 其它代码
|
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
|
||||||
|
#else
|
||||||
|
jsCodeLocation=[RCTHotUpdate bundleURL];
|
||||||
|
#endif
|
||||||
|
// ... 其它代码
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
## 发布iOS应用
|
## 发布iOS应用
|
||||||
|
|
||||||
首先参考[文档-在设备上运行](http://reactnative.cn/docs/0.22/running-on-device-ios.html#content),
|
首先参考[文档-在设备上运行](http://reactnative.cn/docs/running-on-device-ios.html#content),
|
||||||
确定你正在使用离线包。然后点击菜单。
|
确定你正在使用离线包。然后点击菜单。
|
||||||
|
|
||||||
按照正常的发布流程打包`.ipa`文件(Product-Achieve),然后运行如下命令
|
按照正常的发布流程打包`.ipa`文件(Product-Achieve),然后运行如下命令
|
||||||
@@ -22,8 +22,8 @@ $ pushy uploadIpa <your-package.ipa>
|
|||||||
|
|
||||||
## 发布安卓应用
|
## 发布安卓应用
|
||||||
|
|
||||||
首先参考[文档-生成已签名的APK](http://reactnative.cn/docs/0.22/signed-apk-android.html#content)设置签名,
|
首先参考[文档-生成已签名的APK](http://reactnative.cn/docs/signed-apk-android.html#content)设置签名,
|
||||||
然后在android文件夹下运行`./gradlew buildRelease`,你就可以在`android/app/build/outputs/apk/app-release.apk`中找到你的应用包。
|
然后在android文件夹下运行`./gradlew assembleRelease`,你就可以在`android/app/build/outputs/apk/app-release.apk`中找到你的应用包。
|
||||||
|
|
||||||
然后运行如下命令
|
然后运行如下命令
|
||||||
|
|
||||||
|
@@ -132,7 +132,7 @@ RCT_EXPORT_MODULE(RCTHotUpdate);
|
|||||||
{
|
{
|
||||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||||
|
|
||||||
NSMutableDictionary *ret = [@{} mutableCopy];
|
NSMutableDictionary *ret = [NSMutableDictionary new];
|
||||||
ret[@"downloadRootDir"] = [RCTHotUpdate downloadDir];
|
ret[@"downloadRootDir"] = [RCTHotUpdate downloadDir];
|
||||||
ret[@"packageVersion"] = [RCTHotUpdate packageVersion];
|
ret[@"packageVersion"] = [RCTHotUpdate packageVersion];
|
||||||
ret[@"isRolledBack"] = [defaults objectForKey:keyRolledBackMarked];
|
ret[@"isRolledBack"] = [defaults objectForKey:keyRolledBackMarked];
|
||||||
|
Reference in New Issue
Block a user