Folo 移动端如何用 Expo 在 macOS 上搭建开发环境并跑通 iOS 模拟器
【免费下载链接】follow🧡 Folo is the AI RSS Reader项目地址: https://gitcode.com/GitHub_Trending/fol/follow
Folo 的移动端是一个基于 Expo 的 React Native 应用,代码位于仓库的apps/mobile目录。本文的任务是在 macOS 上把移动端开发环境搭起来,并通过 Expo 把 Folo 的 dev 客户端构建、安装到 iOS 模拟器,再启动开发服务器跑起来。前提条件以 CONTRIBUTING.md 的说明为准:需要一台 Mac 设备,并已安装 Xcode 及必要依赖——移动端无法在非 Mac 环境上走这条构建路径。
环境与版本前提
仓库是 pnpm workspaces + Turbo 管理的 monorepo(见 AGENTS.md),package.json 中通过
packageManager字段固定了pnpm@10.17.0,CONTRIBUTING 要求先启用 Corepack,由它保证使用package.json指定的包管理器版本:corepack enable && corepack prepare移动端依赖 Expo。apps/mobile/README.md 写明项目基于 Expo SDK
>=52构建,当前 apps/mobile/package.json 中expo的依赖版本为~57.0.4,满足该下限。导航使用 Expo Router,样式使用 NativeWind,状态管理为 Jotai 和 Zustand。
安装依赖
在仓库根目录执行:
pnpm install根目录 package.json 的postinstall会接着执行pnpm run build:packages(用 turbo 构建packages/**下的工作区包),移动端依赖这些内部包(@follow/components、@follow/store等均以workspace:*引用),所以安装阶段时间比一般项目长,属于正常现象。
配置 .env
进入移动端目录并复制环境变量示例文件:
cd apps/mobile cp .env.example .env.env.example 中包含EXPO_PUBLIC_APP_CHECK_DEBUG_TOKEN=和SENTRY_AUTH_TOKEN=两个变量。CONTRIBUTING 要求设置的是前者,文档给出的写法是:
echo 'EXPO_PUBLIC_APP_CHECK_DEBUG_TOKEN="xxx"' >> .env或手动编辑.env文件加入:
EXPO_PUBLIC_APP_CHECK_DEBUG_TOKEN="xxx"文档明确说明EXPO_PUBLIC_APP_CHECK_DEBUG_TOKEN的值可以是任意字符串,"xxx"即可。
首次构建并安装到 iOS 模拟器
执行:
pnpm expo prebuild --clean # Optional pnpm run iospnpm run ios对应 apps/mobile/package.json 中的expo run:ios。CONTRIBUTING 把这一步描述为「Build and install Folo(dev) app from source」,即从源码构建 dev 客户端并安装到模拟器,并明确提示这一步耗时较长、且只需做一次。pnpm expo prebuild --clean是可选的 clean rebuild,apps/mobile/AGENTS.md 说明它适用于 native module 发生变更的场景;首次搭建时照文档标注为 Optional,可以跳过。
构建完成后,模拟器上会装好 Folo(dev) 应用,这就是后续开发服务器所连接的 dev client。
启动开发服务器
pnpm run devdev脚本的实际链路在 apps/mobile/package.json 中可以看到:dev→start→expo start --dev-client。也就是说开发服务器以 dev-client 模式启动,加载的正是上一步构建安装的 Folo(dev) 应用,而不是 Expo Go。apps/mobile/README.md 的 Getting Started 也把pnpm run dev列为启动开发服务器的标准命令,并列出可用运行目标:iOS Simulator(pnpm run ios)、iOS 真机(pnpm run ios:device)、Android Emulator(pnpm run android)。
结果判断
文档没有给出固定的成功日志样例,以 CONTRIBUTING.md 描述的实际动作为准:
pnpm run ios执行完毕,Folo(dev) 应用完成构建并安装到模拟器——这是文档定义的预期结果,且只做一次;pnpm run dev持续运行开发服务器(expo start --dev-client),供模拟器中的 Folo(dev) 拉取代码并热更新。
若pnpm run ios阶段报错,文档没有给出逐项排查表,可先回到前提核对:是否使用了 Corepack 提供的 pnpm、.env是否已创建且包含EXPO_PUBLIC_APP_CHECK_DEBUG_TOKEN。
可选分支与边界
- iOS 真机:
pnpm run ios:device(对应expo run:ios --device),同样需要 Mac 环境。 - 原生 iOS 模块开发:如果之后要改
native/下的平台代码,CONTRIBUTING 给出的路径是cd apps/mobile/ios后执行open Folo.xcworkspace,在 Xcode 中打开 Pods 侧边栏选择FollowNative,然后 Build and run;改完 native module 后用pnpm expo prebuild --clean做 clean rebuild。 - 平台范围:apps/mobile/README.md 标注 Android 支持仍为 WIP,本文的模拟器验证路径以 iOS 为准。
环境搭好后的日常循环就是两步:pnpm run ios只在首次或 native 变更时执行,日常开发保持pnpm run dev运行即可。
【免费下载链接】follow🧡 Folo is the AI RSS Reader项目地址: https://gitcode.com/GitHub_Trending/fol/follow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考