File tree Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ title: 发布热更新
4
4
type : 快速入门
5
5
---
6
6
7
+ import { Callout } from " nextra/components" ;
8
+
7
9
现在你的应用已经具备了检测更新的功能,下面我们来尝试发布并更新它。流程可参考下图:
8
10
9
11
``` mermaid
@@ -58,8 +60,6 @@ $ pushy uploadIpa <ipa后缀文件>
58
60
59
61
如果后续需要再次 archive 打包(例如修改原生代码或配置。如果只是修改 js 代码则不需要重新打包。),请先** 更改版本号** ,并在打包完成后再次` uploadIpa ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
60
62
61
- > 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
62
-
63
63
### Android
64
64
65
65
首先参考[ 文档-打包 APK] ( https://reactnative.cn/docs/signed-apk-android ) 设置签名,然后在 android 文件夹下运行` ./gradlew assembleRelease ` 或` ./gradlew aR ` ,你就可以在` android/app/build/outputs/apk/release/app-release.apk ` 中找到你的应用包。
@@ -78,12 +78,19 @@ $ pushy uploadApk android/app/build/outputs/apk/release/app-release.apk
78
78
79
79
如果后续需要再次打包(例如修改原生代码或配置。如果只是修改 js 代码则不需要重新打包。),请先** 更改版本号** ,并再次` uploadApk ` 到服务器端记录,否则后续生成的相同版本的原生包会由于[ 编译时间戳不一致而` 无法获取热更新 ` ] ( faq#热更新报错:热更新已暂停,原因:buildtime-mismatch。 ) 。
80
80
81
- > 注意:如果你在上传之前就运行了新的原生版本,由于服务器端没有记录,会暂停其更新数小时。可删除原先安装的 app 再重新安装以清空暂停设置。在上传之后安装的客户端不会受此影响。
82
-
83
81
## 发布热更新版本
84
82
85
83
你可以尝试修改一行代码(譬如将版本一修改为版本二),然后使用` pushy bundle --platform <ios|android> ` 命令来生成新的热更新版本。
86
84
85
+ <Callout type = " info" >
86
+ 如果你使用了较新版本的` expo ` 或其他没有` index.js ` 的框架,执行` bundle ` 命令时会报错。此时请手动创建一个` index.js ` 文件,在其中引用框架自身的入口文件即可。具体入口文件的路径如何,请参考框架的说明文档或者` package.json ` 中的` main ` 字段。例如针对` expo ` 的` index.js ` 可能是如下这样写:
87
+
88
+ ``` js
89
+ import " expo-router/entry" ;
90
+ ```
91
+
92
+ </Callout >
93
+
87
94
``` bash
88
95
$ pushy bundle --platform android
89
96
Bundling with React Native version: 0.22.2
You can’t perform that action at this time.
0 commit comments