应用端实验室移动应用
00 / 00

移动端必懂基础

给新手准备的 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 RouterApp 里的页面导航让移动端像 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 ConnectGoogle Play 文档。

常见坑

正确做法
把服务端密钥写进 App移动端只放公开配置,密钥留在 Web/API 后端
只在模拟器测试登录登录、支付、深链要用真机测
一开始就做复杂原生功能先跑通登录、API、会员状态,再加业务能力
App 和 Web 各做一套账号复用同一个 Better Auth 后端和用户数据
忽略商店资料上架需要截图、隐私政策、证书、审核说明和测试账号

官方参考

下一步

概念都清楚了,接下来把移动端在本地跑起来:移动端快速开始

想和其他创造者交流?

这篇文档有问题?