diff --git a/docs/cli.md b/docs/cli.md index 4bdf46d..e34f6b7 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -28,7 +28,7 @@ $ npm install --save react-native-update #### pushy diffFromApk -提供一个apk文件和一个ppk文件,生成从ipa文件到next版本的差异更新包。 +提供一个apk文件和一个ppk文件,生成从apk文件到next版本的差异更新包。 如果使用热更新开放平台,你不需要自己执行此命令。 diff --git a/docs/faq_advance.md b/docs/faq_advance.md index a12843e..5013dc8 100644 --- a/docs/faq_advance.md +++ b/docs/faq_advance.md @@ -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版本记做不同的应用。 diff --git a/docs/guide.md b/docs/guide.md index 6e63c4e..11e3155 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -2,7 +2,7 @@ 首先你应该有一个基于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`等等。 @@ -11,14 +11,29 @@ ## 安装 在你的项目根目录下运行以下命令(不要输入开头的美元符号): - ```bash $ npm install -g react-native-update-cli rnpm $ npm install --save 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) @@ -36,9 +51,13 @@ $ rnpm link react-native-update - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - jsCodeLocation = [RCTHotUpdate bundleURL]; - // ... 其它代码 +#if DEBUG + // 原来的jsCodeLocation + jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; +#else + jsCodeLocation=[RCTHotUpdate bundleURL]; +#endif + // ... 其它代码 } ``` diff --git a/docs/guide3.md b/docs/guide3.md index 30c3ce1..87e42cc 100644 --- a/docs/guide3.md +++ b/docs/guide3.md @@ -7,7 +7,7 @@ ## 发布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),然后运行如下命令 @@ -22,8 +22,8 @@ $ pushy uploadIpa ## 发布安卓应用 -首先参考[文档-生成已签名的APK](http://reactnative.cn/docs/0.22/signed-apk-android.html#content)设置签名, -然后在android文件夹下运行`./gradlew buildRelease`,你就可以在`android/app/build/outputs/apk/app-release.apk`中找到你的应用包。 +首先参考[文档-生成已签名的APK](http://reactnative.cn/docs/signed-apk-android.html#content)设置签名, +然后在android文件夹下运行`./gradlew assembleRelease`,你就可以在`android/app/build/outputs/apk/app-release.apk`中找到你的应用包。 然后运行如下命令 diff --git a/ios/RCTHotUpdate/RCTHotUpdate.m b/ios/RCTHotUpdate/RCTHotUpdate.m index 1a9afa6..2fc1ea4 100644 --- a/ios/RCTHotUpdate/RCTHotUpdate.m +++ b/ios/RCTHotUpdate/RCTHotUpdate.m @@ -132,7 +132,7 @@ RCT_EXPORT_MODULE(RCTHotUpdate); { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - NSMutableDictionary *ret = [@{} mutableCopy]; + NSMutableDictionary *ret = [NSMutableDictionary new]; ret[@"downloadRootDir"] = [RCTHotUpdate downloadDir]; ret[@"packageVersion"] = [RCTHotUpdate packageVersion]; ret[@"isRolledBack"] = [defaults objectForKey:keyRolledBackMarked];