Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
sunnylqm committed Oct 30, 2023
1 parent e237482 commit 843ce87
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
1 change: 1 addition & 0 deletions site/docs/integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ type: 快速入门
我们从 v8.x 版本开始提供极简的三行式集成(老版本只能使用自定义集成方式):

```js
import { Platform } from 'react-native';
import { simpleUpdate } from 'react-native-update';
import _updateConfig from './update.json';
const { appKey } = _updateConfig[Platform.OS];
Expand Down
14 changes: 9 additions & 5 deletions site/docs/publish.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ type: 快速入门

![publishflow](assets/publishflow.png)

一般来说我们需要先发布原生基准版本,然后在基准版本之上迭代业务逻辑,发布热更新版本。如果迭代过程中有原生方面的修改,则需要发布新的基准版本。可以只保留一个原生基准版本,也可以多版本同时维护。
流程总结如下:

1. 我们需要先打包一个原生 release 版本,在打包前请确保已集成了`react-native-update`并在调试过程中运行正常,安卓端[关闭了`crunchPngs`设置](/docs/getting-started.html#%E7%A6%81%E7%94%A8-android-%E7%9A%84-crunch-%E4%BC%98%E5%8C%96),打包说明可参考[iOS 打包](https://reactnative.cn/docs/publishing-to-app-store)[android 打包](https://reactnative.cn/docs/signed-apk-android)。打包完成后请使用`pushy uploadIpa`或者`pushy uploadApk`命令来把这个安装包上传到 pushy 服务器端,以作为之后热更差量对比的基准。同时请保留好这个安装包,上架和分发给用户所使用的安装包`需要和服务器端完全一致`。建议使用 git tag 功能来标记原生版本号(例如`v1.0.0`)。
2. 然后在基准版本之上迭代业务逻辑(增删 js 代码,增删图片等静态资源),使用`pushy bundle`命令来生成和发布热更新版本,而不需要重新打包。建议使用 git tag 功能来标记热更版本号(例如`v1.0.1`)。
3. 如果迭代过程中有原生方面的修改,则需要发布并上传新的原生基准版本(重复步骤 1,但需要设置不同的原生版本号)。可以只保留一个原生基准版本,也可以多版本同时维护。

## 发布原生基准版本

Expand All @@ -20,7 +24,7 @@ type: 快速入门

1. Xcode 中运行设备选真机或 Generic iOS Device
2. 菜单中选择 Product - Archive
3. Archive 完成后选择`Export`生成.ipa 文件,此时建议取消 bitcode 选项以减少 ipa 大小
3. Archive 完成后选择`Export`生成.ipa 文件
4. 然后运行如下命令上传到 pushy 服务器以供后续版本比对之用

```bash
Expand All @@ -31,7 +35,7 @@ $ pushy uploadIpa <ipa后缀文件>

随后你可以选择往 AppStore 上传这个版本(可以重新 export 并调整相关选项,但请不要重新 archive),也可以先通过[Test flight](https://developer.apple.com/cn/testflight/)[蒲公英](https://www.pgyer.com/doc/view/build_ipa)等渠道进行真机安装测试。请注意:暂不支持通过 Xcode 直接进行热更新测试。

如果后续需要再次 archive 打包(例如修改原生代码或配置),请先**更改版本号**,并在打包完成后再次`uploadIpa`到服务器端记录,否则后续生成的相同版本的原生包会由于[编译时间戳不一致而`无法获取热更新`](faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。)
如果后续需要再次 archive 打包(例如修改原生代码或配置。如果只是修改js代码则不需要重新打包。),请先**更改版本号**,并在打包完成后再次`uploadIpa`到服务器端记录,否则后续生成的相同版本的原生包会由于[编译时间戳不一致而`无法获取热更新`](faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。)

> 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
Expand All @@ -51,7 +55,7 @@ $ pushy uploadApk android/app/build/outputs/apk/release/app-release.apk

随后你可以选择往应用市场发布这个版本,也可以先往设备上直接安装这个 apk 文件以进行测试。

如果后续需要再次打包(例如修改原生代码或配置),请先**更改版本号**,并再次`uploadApk`到服务器端记录,否则后续生成的相同版本的原生包会由于[编译时间戳不一致而`无法获取热更新`](faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。)
如果后续需要再次打包(例如修改原生代码或配置。如果只是修改js代码则不需要重新打包。),请先**更改版本号**,并再次`uploadApk`到服务器端记录,否则后续生成的相同版本的原生包会由于[编译时间戳不一致而`无法获取热更新`](faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。)

> 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
Expand Down Expand Up @@ -96,7 +100,7 @@ Would you like to bind packages to this version?(Y/N)

版本绑定完毕后,服务器会在几秒内生成差量补丁,客户端就可以获取到更新了。

后续要继续发布新的热更新,只需反复执行`pushy bundle`命令即可。
后续要继续发布新的热更新,只需反复执行`pushy bundle`命令即可,不需要重新打包

恭喜你,至此为止,你已经完成了植入代码热更新的全部工作。

Expand Down

0 comments on commit 843ce87

Please sign in to comment.