SuperAPI AI 工具集

install-mobile-beta

部署与运维

查看项目

更新于 11-03 23:38

技能介绍

用途:该技能是一份面向创始人/发布阶段的移动端测试版安装配方,用于在团队预留的物理 iPhone 设备上,安装经过签名的独立 Opensteer 测试版应用,以完成创始人接受验收。它不是每次功能提交前必须执行的检查门槛。

主要能力:

  • 在指定提交的干净检出上完成 iOS Release 构建,并直接安装到指定物理设备。
  • 处理构建要求:从源码构建 React Native(RCT_USE_RN_DEP=0、RCT_USE_PREBUILT_RNCORE=0),避免预构建依赖在 Release 链接时留下未解析符号。
  • 将账户源(accountUrl)写入 bundle,使应用能通过 Connect 访问仅回环的 Personal Host;示例为 https://accounts.opensteer.com,对应 apps/desktop/src/releases/desktop-release.json 中的 accountUrl。缺少该配置时,构建可以列出计算机但无法连接。
  • 构建后校验:codesign 深度严格校验、确认 main.jsbundle 非空、检查 bundle 中含有所需账户源字符串。
  • 使用 xcrun devicectl 安装并启动应用,输出 JSON 回执,并保留安装元数据与运行进程证据。

使用方式(概述):

  • 采用所选提交的干净检出,构建产物、日志与回执放在检出目录之外。
  • 由操作者私密提供 MOBILE_DEVICE_ID 与 MOBILE_SIGNING_TEAM,并设置绝对的 MOBILE_EVIDENCE_DIR 与 EXPO_PUBLIC_OPENSTEER_ACCOUNT_ORIGIN。
  • 流程包括:创建证据目录、pnpm install --frozen-lockfile、取消 mock 环境变量、expo prebuild(ios、no-install)、pod install、xcodebuild Release 构建(自动签名、允许更新配置文件与设备注册)、签名与 bundle 校验、devicectl 安装与启动。
  • 安装前核对 Info.plist 的 bundle 标识与版本是否与 app.config.ts 及根包版本一致,并确认构建输入中 mock 模式已关闭。
  • 保留干净源码 SHA、工具版本、签名验证结果、内嵌包校验和与构建日志;安装后用 devicectl device info apps 与 devicectl device info processes 记录应用元数据与运行进程。内嵌 bundle 使应用无需 Metro 即可运行;复用应用标识可更新现有安装,不要卸载后再更新。

适用场景:

  • 创始人/发布验收阶段,在预留物理设备上安装并验证签名测试版。
  • 需要确认保存的部署能打开、所需交互可用的单一用户旅程验收。
  • 通过 pnpm test:vm 运行 GUI/原生自动化旅程;物理设备保留给其指定所有者。

限制与注意事项:

  • 成功的构建、安装或进程启动不能证明用户旅程可用,仍需按受影响的流程复用单一旅程记录验收结果,不要为每个边缘情况新增产物。
  • 不得在已发布的回执中记录设备标识与私有配置;证据中不得记录密钥、令牌或解码载荷。
  • 私有预览签名方面:仅由指定人员注册/启用 com.opensteer.mobile 与 com.opensteer.mobile.NotificationService 两个 App ID,创建 App Group group.com.opensteer.mobile.notifications 并关联二者,重新生成或允许两个目标的描述文件。代理不得接触 Apple 账户凭证或签名材料。两个目标仅出于预览共享目的携带 application-groups,不要添加 keychain-access-groups;预览钥匙串条目显式使用 App Group 标识,现有登录凭证保留默认组。父应用保留推送通知,扩展不需要 APNs 密钥/主题或后台模式;账户 APNs 主题为 com.opensteer.mobile。
  • 在获得描述文件后,需验证两个内嵌目标的 entitlements 与物理设备签名交付,并按文档列出的场景检查(认证文本、篡改/过期/缺失密钥时的通用文本、首次解锁前、重装标记、Deployment 与 Account 登出、前台抑制);Android 需交付两个连续的同 Thread 告警,先点 A 再点 B 并验证都能导航,检查合并清单中只有一个 MESSAGING_EVENT 服务。未签名构建无法通过上述检查。
  • 文档中涉及的凭据、设备标识与签名材料等具体值暂未提供,需由操作者私密提供。