@@ -8,7 +8,11 @@ type: 快速入门
8
8
9
9
![ publishflow] ( assets/publishflow.png )
10
10
11
- 一般来说我们需要先发布原生基准版本,然后在基准版本之上迭代业务逻辑,发布热更新版本。如果迭代过程中有原生方面的修改,则需要发布新的基准版本。可以只保留一个原生基准版本,也可以多版本同时维护。
11
+ 流程总结如下:
12
+
13
+ 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 ` )。
14
+ 2 . 然后在基准版本之上迭代业务逻辑(增删 js 代码,增删图片等静态资源),使用` pushy bundle ` 命令来生成和发布热更新版本,而不需要重新打包。建议使用 git tag 功能来标记热更版本号(例如` v1.0.1 ` )。
15
+ 3 . 如果迭代过程中有原生方面的修改,则需要发布并上传新的原生基准版本(重复步骤 1,但需要设置不同的原生版本号)。可以只保留一个原生基准版本,也可以多版本同时维护。
12
16
13
17
## 发布原生基准版本
14
18
@@ -20,7 +24,7 @@ type: 快速入门
20
24
21
25
1 . Xcode 中运行设备选真机或 Generic iOS Device
22
26
2 . 菜单中选择 Product - Archive
23
- 3 . Archive 完成后选择` Export ` 生成.ipa 文件,此时建议取消 bitcode 选项以减少 ipa 大小
27
+ 3 . Archive 完成后选择` Export ` 生成.ipa 文件
24
28
4 . 然后运行如下命令上传到 pushy 服务器以供后续版本比对之用
25
29
26
30
``` bash
@@ -31,7 +35,7 @@ $ pushy uploadIpa <ipa后缀文件>
31
35
32
36
随后你可以选择往 AppStore 上传这个版本(可以重新 export 并调整相关选项,但请不要重新 archive),也可以先通过[ Test flight] ( https://developer.apple.com/cn/testflight/ ) 或[ 蒲公英] ( https://www.pgyer.com/doc/view/build_ipa ) 等渠道进行真机安装测试。请注意:暂不支持通过 Xcode 直接进行热更新测试。
33
37
34
- 如果后续需要再次 archive 打包(例如修改原生代码或配置),请先** 更改版本号** ,并在打包完成后再次` uploadIpa ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
38
+ 如果后续需要再次 archive 打包(例如修改原生代码或配置。如果只是修改js代码则不需要重新打包。 ),请先** 更改版本号** ,并在打包完成后再次` uploadIpa ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
35
39
36
40
> 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
37
41
@@ -51,7 +55,7 @@ $ pushy uploadApk android/app/build/outputs/apk/release/app-release.apk
51
55
52
56
随后你可以选择往应用市场发布这个版本,也可以先往设备上直接安装这个 apk 文件以进行测试。
53
57
54
- 如果后续需要再次打包(例如修改原生代码或配置),请先** 更改版本号** ,并再次` uploadApk ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
58
+ 如果后续需要再次打包(例如修改原生代码或配置。如果只是修改js代码则不需要重新打包。 ),请先** 更改版本号** ,并再次` uploadApk ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq.html#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
55
59
56
60
> 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
57
61
@@ -96,7 +100,7 @@ Would you like to bind packages to this version?(Y/N)
96
100
97
101
版本绑定完毕后,服务器会在几秒内生成差量补丁,客户端就可以获取到更新了。
98
102
99
- 后续要继续发布新的热更新,只需反复执行` pushy bundle ` 命令即可。
103
+ 后续要继续发布新的热更新,只需反复执行` pushy bundle ` 命令即可,不需要重新打包 。
100
104
101
105
恭喜你,至此为止,你已经完成了植入代码热更新的全部工作。
102
106
0 commit comments