mirror of
https://gitee.com/wanwujie/sub2api-mobile
synced 2026-04-02 22:42:14 +08:00
4.2 KiB
4.2 KiB
Expo Release
当前项目已绑定新的 Expo / EAS 项目:
- Owner:
ckken - Slug:
sub2api-mobile - Project ID:
acaedd05-5a2a-4843-a648-e025c08ce7b3
已完成配置
app.json已配置ownerapp.json已配置scheme = sub2apimobileapp.json已配置runtimeVersion.policy = appVersionapp.json已配置updates.urlpackage.json已包含expo-dev-clienteas.json已配置development / preview / production三套 profile
登录状态检查
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 一致
本地开发
npm run start
如果要用 dev client 连本地:
npm run start:dev-client
预览包
npm run eas:build:preview
Dev Client / 模拟器测试
开发构建:
npm run eas:build:development
也可以分平台:
npm run eas:build:development:android
npm run eas:build:development:ios
当前 development profile 已配置:
developmentClient: truedistribution: internalios.simulator: true
适合先生成一个测试壳,后续再配合 Expo / EAS Update 做快速验证。
推荐发布流程
方案 A:本地开发调试
适用于:
- UI 改动
- 页面白屏排查
- 路由调试
命令:
npm run start
方案 B:发 branch 给 dev client 验证
适用于:
- 想在 Expo Updates 里看到新的 branch/update
- 想让测试壳直接吃 OTA
步骤:
npx eas-cli@latest update --branch preview --message "your message"
然后在 dev client / development build 中验证对应 branch。
方案 C:先出壳,再吃 OTA
如果还没有合适的 dev client:
npm run eas:build:development:android
npm run eas:build:development:ios
装好开发壳后,再发:
npx eas-cli@latest update --branch preview --message "your message"
本次实战记录
本次已经验证通过的 OTA 发布命令:
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
使用前需要在 GitHub 仓库 Secrets 里配置:
EXPO_TOKEN
触发方式:
- 打开 GitHub 仓库的
Actions - 选择
EAS Build - 点击
Run workflow - 选择:
profile:preview或productionplatform:android/ios/all
工作流会执行:
npm ci
npx eas build --non-interactive --profile <profile> --platform <platform>
正式包
npm run eas:build:production
OTA 更新
预发:
npx eas update --branch preview --message "preview update"
正式:
npx eas update --branch production --message "production update"