mirror of
https://gitee.com/wanwujie/sub2api-mobile
synced 2026-04-03 06:52:14 +08:00
feat: refine expo admin mobile flows
This commit is contained in:
@@ -9,8 +9,10 @@
|
||||
## 已完成配置
|
||||
|
||||
- `app.json` 已配置 `owner`
|
||||
- `app.json` 已配置 `scheme = sub2apimobile`
|
||||
- `app.json` 已配置 `runtimeVersion.policy = appVersion`
|
||||
- `app.json` 已配置 `updates.url`
|
||||
- `package.json` 已包含 `expo-dev-client`
|
||||
- `eas.json` 已配置 `development / preview / production` 三套 profile
|
||||
|
||||
## 登录状态检查
|
||||
@@ -20,6 +22,45 @@ npx expo whoami
|
||||
npx eas whoami
|
||||
```
|
||||
|
||||
## 关键结论
|
||||
|
||||
### 1. Expo Go 适合什么
|
||||
|
||||
`Expo Go` 适合:
|
||||
|
||||
- `npx expo start`
|
||||
- 本地 Metro 联调
|
||||
- 快速查看 JS / RN 页面改动
|
||||
|
||||
### 2. Expo Go 不适合什么
|
||||
|
||||
这次已经实测确认:
|
||||
|
||||
- 不能把 `Expo Go` 当成 `EAS Update branch` 的稳定预览壳
|
||||
- 想在 Expo Updates 里通过 branch 打开新版本,应该使用 `development build / dev client`
|
||||
|
||||
### 3. branch 预览要满足什么
|
||||
|
||||
要稳定预览 branch/update,需要同时满足:
|
||||
|
||||
- 已发布 `eas update --branch <branch>`
|
||||
- App 壳支持 `expo-updates`
|
||||
- App 壳包含 `expo-dev-client` 或对应原生构建
|
||||
- 项目配置了自定义 `scheme`
|
||||
- `runtimeVersion` 与 update 一致
|
||||
|
||||
## 本地开发
|
||||
|
||||
```bash
|
||||
npm run start
|
||||
```
|
||||
|
||||
如果要用 dev client 连本地:
|
||||
|
||||
```bash
|
||||
npm run start:dev-client
|
||||
```
|
||||
|
||||
## 预览包
|
||||
|
||||
```bash
|
||||
@@ -34,6 +75,13 @@ npm run eas:build:preview
|
||||
npm run eas:build:development
|
||||
```
|
||||
|
||||
也可以分平台:
|
||||
|
||||
```bash
|
||||
npm run eas:build:development:android
|
||||
npm run eas:build:development:ios
|
||||
```
|
||||
|
||||
当前 `development` profile 已配置:
|
||||
|
||||
- `developmentClient: true`
|
||||
@@ -42,6 +90,92 @@ npm run eas:build:development
|
||||
|
||||
适合先生成一个测试壳,后续再配合 `Expo / EAS Update` 做快速验证。
|
||||
|
||||
## 推荐发布流程
|
||||
|
||||
### 方案 A:本地开发调试
|
||||
|
||||
适用于:
|
||||
|
||||
- UI 改动
|
||||
- 页面白屏排查
|
||||
- 路由调试
|
||||
|
||||
命令:
|
||||
|
||||
```bash
|
||||
npm run start
|
||||
```
|
||||
|
||||
### 方案 B:发 branch 给 dev client 验证
|
||||
|
||||
适用于:
|
||||
|
||||
- 想在 Expo Updates 里看到新的 branch/update
|
||||
- 想让测试壳直接吃 OTA
|
||||
|
||||
步骤:
|
||||
|
||||
```bash
|
||||
npx eas-cli@latest update --branch preview --message "your message"
|
||||
```
|
||||
|
||||
然后在 dev client / development build 中验证对应 branch。
|
||||
|
||||
### 方案 C:先出壳,再吃 OTA
|
||||
|
||||
如果还没有合适的 dev client:
|
||||
|
||||
```bash
|
||||
npm run eas:build:development:android
|
||||
npm run eas:build:development:ios
|
||||
```
|
||||
|
||||
装好开发壳后,再发:
|
||||
|
||||
```bash
|
||||
npx eas-cli@latest update --branch preview --message "your message"
|
||||
```
|
||||
|
||||
## 本次实战记录
|
||||
|
||||
本次已经验证通过的 OTA 发布命令:
|
||||
|
||||
```bash
|
||||
npx eas-cli@latest update --branch preview --message "align dev-client and user detail 2026-03-08"
|
||||
```
|
||||
|
||||
本次成功发布结果:
|
||||
|
||||
- Branch: `preview`
|
||||
- Message: `align dev-client and user detail 2026-03-08`
|
||||
- Update group ID: `b6744438-929d-4206-b1eb-0887eaf3f97d`
|
||||
- iOS update ID: `019ccd68-a2af-7ba1-af68-7958f454e93c`
|
||||
- Android update ID: `019ccd68-a2af-7166-9e9d-9619bd1b8e0e`
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 1. 本地正常,发到 branch 后白屏
|
||||
|
||||
先排查:
|
||||
|
||||
- 当前打开的是不是 `Expo Go`
|
||||
- 当前壳是不是 `development build`
|
||||
- 项目是否配置了 `scheme`
|
||||
- `runtimeVersion` 是否匹配
|
||||
|
||||
### 2. branch 发上去了,但设备没更新
|
||||
|
||||
先确认:
|
||||
|
||||
- 看的是不是正确 project
|
||||
- branch 是否是 `preview`
|
||||
- 壳的 channel 是否匹配
|
||||
- 使用的是不是 dev client / 原生预览壳
|
||||
|
||||
### 3. Deep link 报错 no custom scheme defined
|
||||
|
||||
说明 `app.json` 没有自定义 `scheme`,或者当前原生壳太旧,需要重新构建。
|
||||
|
||||
## GitHub Actions 构建
|
||||
|
||||
仓库已提供工作流:`.github/workflows/eas-build.yml`
|
||||
@@ -85,10 +219,3 @@ npx eas update --branch preview --message "preview update"
|
||||
```bash
|
||||
npx eas update --branch production --message "production update"
|
||||
```
|
||||
|
||||
## 当前还需要你补的内容
|
||||
|
||||
- iOS 的 `bundleIdentifier`
|
||||
- Android 的 `package`
|
||||
|
||||
如果不补这两个标识,原生构建时 EAS 还会继续要求你确认或生成。
|
||||
|
||||
Reference in New Issue
Block a user