如何用 Expo 在本地跑通 Rowboat 移动应用并部署到真机调试?

发布时间:2026/9/14 6:55:01
如何用 Expo 在本地跑通 Rowboat 移动应用并部署到真机调试? 如何用 Expo 在本地跑通 Rowboat 移动应用并部署到真机调试【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboatRowboat 的移动端应用在apps/x/apps/mobile基于 Expo SDK 57expo ~57.0.19和 expo-router 文件路由。这个应用是 Rowboat 服务的直接客户端手机用自己的 Rowboat 账号登录连接 Rowboat 托管的 SpacesHarbor浏览组织、空间和文件本机 Mac 上的 Rowboat 桌面应用只在可选的 “Connect your Mac” QR 配对功能中才需要。本文的目标是在本地把该应用跑起来先在 iOS 模拟器中验证登录和空间列表再用npx expo run:ios --device在真机上构建 dev build 调试。文档给出的路径只覆盖 iOS——MOBILE_PLAN.md 明确把 Android 和 TestFlight 列为 “Not in this plan”。准备条件按 MOBILE_PLAN.md 的说明跑通前需要确认三件事工作区依赖已构建。mobile 包声明了三个本地依赖见 apps/x/apps/mobile/package.jsonrowboat/spaces-protocol以link:../../../harbor/packages/protocol指向apps/harbor/packages/protocol、x/shared和x/client均为workspace:*。这三个包必须先安装并构建出产物mobile 端才能正常解析。一个真实的 Rowboat 账号。计划中 S1 阶段的验证要求 “simulator signs in with a real Rowboat account”登录验证依赖真实账号与其实际的组织/空间数据。iOS 模拟器 一部真机。计划中每个阶段 “verified in the simulator before it ships”S4 阶段才在物理 iPhone 上出 dev build。应用标识来自 apps/x/apps/mobile/app.json应用名 RowboatiOSbundleIdentifier为com.rowboat.app.mobileURL scheme 为rowboat登录深链rowboat://oauth-callback也基于它。第一步构建工作区依赖包apps/x根目录的 package.json 提供了现成脚本。按顺序执行cd apps/x npm run shared npm run clientnpm run shared内部先执行npm run protocol即cd ../harbor pnpm install --filter rowboat/spaces-protocol cd packages/protocol npm run build装好并构建协议包后再构建x/sharednpm run client构建x/client。mobile 包里的eas-build-post-install脚本是同一套构建顺序的等价写法pnpm install --filter ./packages/protocol --no-frozen-lockfile→pnpm --filter ./packages/protocol run build→pnpm --filter x/shared --filter x/client run build云端构建时会自动走这条路本地手动跑时按上面的根脚本执行即可。第二步安装依赖并启动开发服务器mobile 目录下的 README.md 给出的启动步骤cd apps/x/apps/mobile npm install npx expo start需要注意一点README 里的npm install来自 create-expo-app 模板的默认说明而 mobile 包声明了workspace:*与link:形式的依赖整个apps/x工作区由 pnpm 管理见 apps/x/pnpm-workspace.yaml 与apps/x/pnpm-lock.yamlpackages覆盖apps/*和packages/*。如果单独安装时这些工作区依赖无法解析以工作区根目录下的 pnpm 安装结果为准。npx expo start启动后输出中会列出可用的打开方式development build、Android emulator、iOS simulator 或 Expo Go。本地验证选 iOS simulator 打开。也可以直接用 mobile 包脚本npm run ios即expo start --ios。第三步在模拟器中验证打开应用后按计划文档给出的 S1 验证标准判断是否跑通用一个真实的 Rowboat 账号登录应用应列出该用户实际所属的组织org 列表来自 apex 的GET /v1/orgs选择组织后能看到对应空间列表。如果登录和列表都正常说明本地环境已可用。计划里后续阶段的验证标准也可以顺手对照S2 要求手机与桌面端在同一空间内双向实时聊天S3 要求在桌面端改一个文件后手机端只读文件视图会刷新。第四步在真机上构建 dev build 调试MOBILE_PLAN.md 的 “Standing gotchas” 明确指出App Store 里的 Expo Go 跑不了 SDK 57——模拟器用的是随项目捆绑的 Expo Go但物理手机必须用 S4 的 dev build。iPhone 连上电脑后执行npx expo run:ios --device构建并安装到手机后按 S4 的退出标准完成真机验证在真实 iPhone 上登录、在一个空间里阅读和发帖、浏览文件行为正常即算跑通。已知问题与边界reanimated/worklets 在 Expo Go 中崩溃gotchas 给出的处理命令是npx expo install --fix另外 worklets 的 babel 插件需要babel/*依赖在 apps/x/pnpm-workspace.yaml 的packageExtensions中 graft 到react-native-worklets上仓库中已配置好改动工作区配置时不要删掉这段。配对功能的前提抽屉里的 “Connect your Mac”QR 配对是 opt-in 功能配对成功后 Mac 端的聊天、历史和 Brain 才会出现在 Spaces 旁边不做这个功能不影响 Spaces 主流程但配对时手机需要与 Mac 在同一局域网app.json已声明本地网络与 Bonjour_http._tcp用途。范围边界当前计划不做 Android、TestFlight、空间搜索 UI、白板、文件编辑、推送通知和语音v1 中投票只渲染只读。源码级限制gotchas 还提到 core 的workspace:readdir的allowedExtensions会跳过目录递归失效移动端由客户端自行过滤core 侧修复尚未完成——如果你扩展文件浏览逻辑时遇到列表不全先想到这一条。按以上路径完成 S4 的真机验证登录、空间读写、文件浏览均正常后本地开发与真机调试环境即搭建完毕后续要发版时再对照计划文档中 S4 之后的发布相关内容。【免费下载链接】rowboatOpen-source AI coworker, with memory项目地址: https://gitcode.com/GitHub_Trending/rowb/rowboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考