移动端必懂基础
给新手准备的 App 基础知识:Expo、真机、登录、API、环境变量和上架流程
你将学到
- App 和 Web 的关系——为什么移动端只是另一个客户端
- Expo、Expo Go、Development Build 三者的区别和适用场景
EXPO_PUBLIC_*环境变量的边界:什么能放、什么绝对不能放- 上架一个 App 的完整流程概览
- 新手最常踩的 5 个坑
如果你已经能跑起 01MVP Web 模板,移动端要理解的第一件事很简单:App 就是另一个客户端。它复用同一个账号、同一个 API、同一套会员数据,只是跑在手机上而已。
你不用一开始就懂 React Native、原生开发、商店审核。先把下面这些基础概念搞清楚,再让 AI 帮你干活,效率高很多。
一个核心认知:App 不是新后端
用户看到的是 App 界面,但 App 背后真正依赖的是 Web/API 服务。你在手机上点登录、查会员状态、拉用户资料,本质上都是 App 去访问后端接口。
整个链路是这样的:
手机 App(Expo/React Native) → 公开配置(EXPO_PUBLIC_SERVER_URL) → 01MVP API(Hono/oRPC/Auth) → 业务数据(用户/会员/订单)
App 不需要重新做一套 server。它通过公开地址访问现有服务,共享同一套用户体系和业务数据。
先看准备清单
账号和设备清单放在 移动应用 入口页。读完那张表后,再回到这里理解 Expo、真机、登录、API、环境变量和上架流程。
你先理解这 6 件事
| 概念 | 新手理解方式 | 为什么重要 |
|---|---|---|
| Expo | 帮你做 iOS / Android App 的开发工具箱 | 不用一开始写原生 iOS 和 Android 代码 |
| Expo Router | App 里的页面导航 | 让移动端像 Web 一样按页面组织 |
| Expo Go | 快速预览 App 的手机壳 | 适合早期看界面,不适合验证所有原生能力 |
| Development Build | 带自定义原生能力的开发版 App | 需要相机、支付、推送、Widget 等能力时要用它 |
| EAS Build | 云端帮你打包 App | 用来生成 iOS / Android 安装包和商店包 |
| EXPO_PUBLIC_* | 会进入 App 包的公开配置 | 只能放公开地址,不能放数据库密码、支付密钥、服务端密钥 |
Expo 官方也把 Development Build 作为开发自定义原生能力的推荐路径。你可以把它理解成"属于你自己的开发版 App",比 Expo Go 更接近真实上架版。
Expo Go 和开发版 App 怎么选
适合先用 Expo Go 的场景: 只想看页面布局、只调用普通 API、刚开始替换品牌和文案、还没有接支付和推送。
应该切到 Development Build 的场景: 要验证真实登录回跳、要接 RevenueCat 或原生支付、要用相机和麦克风和文件和推送、要准备商店截图和真机 QA。
新手常见误区:看到 Expo Go 能打开页面,就以为 App 准备好上架了。并不是。上架前你至少要用 EAS 生成 preview 或 production 包,在真机上完整走一遍登录、会员、核心业务和异常网络场景。
真机比模拟器重要
登录、支付、相册、推送、深链这些能力,最终都要在真实手机上验证。模拟器能帮你快速看界面,但很多原生行为在模拟器上表现和真机不一样。
环境变量的安全边界
EXPO_PUBLIC_* 前缀的变量会被打进 App 安装包。用户反编译 App 就能看到这些值。所以:
- 可以放: API 地址、App scheme、cookie 前缀、RevenueCat 公钥
- 绝对不能放: 数据库密码、支付密钥、JWT secret、任何服务端密钥
服务端密钥只放在 products/01mvp/packages/config/.env 或部署平台的 secrets 里。
移动端改造顺序
先改身份信息:App 名称、Bundle ID、Android package、scheme、图标和启动页。
再连后端:把 EXPO_PUBLIC_SERVER_URL 指向你的 Web/API 地址,跑一下 health、登录、profile 看能不能正常请求。
再做会员和支付:先在 Web 端确认会员权益模型,再让 App 只展示和读取结果。
最后处理上架:准备 Apple Developer、Google Play、EAS profile、截图、隐私说明和审核资料。
上架是独立工作
App 能跑起来,只代表开发通过。商店截图、证书、审核和发布要单独准备。具体流程见 App Store Connect 和 Google Play 文档。
常见坑
| 坑 | 正确做法 |
|---|---|
| 把服务端密钥写进 App | 移动端只放公开配置,密钥留在 Web/API 后端 |
| 只在模拟器测试登录 | 登录、支付、深链要用真机测 |
| 一开始就做复杂原生功能 | 先跑通登录、API、会员状态,再加业务能力 |
| App 和 Web 各做一套账号 | 复用同一个 Better Auth 后端和用户数据 |
| 忽略商店资料 | 上架需要截图、隐私政策、证书、审核说明和测试账号 |
官方参考
下一步
概念都清楚了,接下来把移动端在本地跑起来:移动端快速开始
想和其他创造者交流?
这篇文档有问题?