00 / 00

改成自己的 App

从 01MVP mobile 模板改造成真实产品的执行清单

这份清单按实际落地顺序写。建议每完成一组就提交一次,避免品牌、服务端、支付和商店配置混在一起。

1. 改 App 身份

先改 products/01mvp/apps/mobile/app.json

  • expo.name
  • expo.slug
  • expo.scheme
  • expo.ios.bundleIdentifier
  • expo.android.package
  • expo.version

这一步决定 App 在 Expo、设备系统、Deep Link、Apple Developer Portal 和 Google Play Console 中的身份。scheme 要短、稳定、避免和其他 App 冲突。

2. 改服务端公开地址

复制移动端环境文件:

cp products/01mvp/apps/mobile/.env.example products/01mvp/apps/mobile/.env.local

本地开发常见值:

EXPO_PUBLIC_WEB_URL="http://localhost:7001"
EXPO_PUBLIC_SERVER_URL="http://localhost:7001/api"
EXPO_PUBLIC_APP_SCHEME="yourapp"
EXPO_PUBLIC_AUTH_COOKIE_PREFIX="yourapp-session"

生产环境要使用公网 HTTPS 地址:

EXPO_PUBLIC_WEB_URL="https://yourapp.com"
EXPO_PUBLIC_SERVER_URL="https://yourapp.com/api"

EXPO_PUBLIC_* 会进入 App bundle。数据库、邮件、支付服务端密钥和 Better Auth secret 都不能放在这里。

3. 改服务端认证配置

移动端登录依赖服务端信任 App scheme。同步修改:

NATIVE_APP_SCHEME="yourapp"
AUTH_COOKIE_PREFIX="yourapp-session"

本地文件通常是:

products/01mvp/packages/config/.env

部署时把同名变量配置到 Web/API 的生产环境。改完后要重新部署服务端,否则移动端会出现登录成功但回调或受保护 API 失败的情况。

4. 确认 API 边界

模板 App 默认调用:

  • health.live
  • billing.plans
  • account.profile

新增业务功能时,优先在 products/01mvp/packages/api 增加 oRPC procedure,再通过 @01mvp/api/client/mobile/orpc 调用。不要在移动端复制 Web 的 server forwarding 逻辑。

5. 配置 RevenueCat

如果 App 有订阅或内购,先在 RevenueCat 创建:

  • Project
  • iOS App
  • Android App
  • Products
  • Offerings
  • Entitlements

然后填写:

EXPO_PUBLIC_REVENUECAT_IOS_API_KEY="appl_xxx"
EXPO_PUBLIC_REVENUECAT_ANDROID_API_KEY="goog_xxx"
EXPO_PUBLIC_REVENUECAT_ENTITLEMENT_ID="pro"

这些是客户端公钥,可以进入 App bundle。RevenueCat webhook secret 和服务端 API key 只能放在服务端。

6. 初始化 EAS

进入移动端目录:

cd products/01mvp/apps/mobile
eas init

检查 app.json 是否写入了你自己的 EAS project id。然后根据环境更新 eas.json 里的 dev、preview、production profile。

7. 替换品牌资产

正式上架前至少准备:

  • App icon
  • Android adaptive icon
  • Splash image
  • 商店截图
  • 隐私政策 URL
  • App Store / Google Play 描述、关键词、分类和审核备注

图标、权限、Bundle ID、scheme、启动页都属于原生配置,改完要重新 EAS Build。

8. 跑验收命令

vpr @01mvp/mobile#type-check
vpr @01mvp/mobile#test
vpr @01mvp/mobile#lint
vpr @01mvp/mobile#build
vpr @01mvp/api#test src/client/mobile/orpc.test.ts
vpr @01mvp/web#docs:check-links

这些命令通过后,再做真机登录、受保护 API、RevenueCat entitlement 和 EAS preview build。

这篇文档有问题?