ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何在Linux服务器上运行iOS应用:Expo Skills的EAS云模拟器完整实操

如何在Linux服务器上运行iOS应用:Expo Skills的EAS云模拟器完整实操 如何在Linux服务器上运行iOS应用Expo Skills的EAS云模拟器完整实操【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/gh_mirrors/skills9/skillsExpo Skills 是 Expo 团队官方出品的 AI 智能体技能集合其中的EAS SimulatorEAS 云模拟器恰好解决 Linux 用户最头疼的问题不用 Mac、不用 Xcode就能在 Linux 服务器上把 iOS 应用跑在 EAS 云端的 iOS 模拟器里远程点击、截图、录屏甚至实时热更新代码——全部可行。 本文将带你从 0 开始用几行命令在 Linux 服务器上启动云 iOS 模拟器会话、装好你的应用并驱动它完成第一次测试。一、为什么 Linux 服务器需要云 iOS 模拟器 大多数 iOS 开发者都熟悉这个不可能三角iOS 模拟器只能在macOS上运行服务器、CI 流水线、云开发环境却几乎都是Linux但你又想在服务器上跑通应用流程、抓截图、做自动化验证EAS 云模拟器EAS Simulator就是官方给出的答案它在 Expo 的云端托管一台真实的 iOS 模拟器你的 Linux 服务器、CI 或 AI 智能体通过命令行连上去即可远程完成——能力说明 安装应用把本地构建的.app或 EAS 云端构建产物装进云模拟器 点击与输入读取 UI 树、点击按钮、填写输入框 截图与录屏静态截图或录制动画/手势过程️ 浏览器预览把云模拟器画面实时投屏到你的浏览器对应的技能文档在 plugins/expo/skills/eas-simulator/SKILL.md。装好 Expo Skills 后AI 智能体会在跑任何eas simulator:*命令前自动加载它确保使用的是当前有效的命令语法。二、一键安装 Expo Skills最快安装步骤在 Linux 服务器上安装只需一条命令要求已安装 Node.jsnpx skillslatest add expo/skills --skill *这条命令会安装全部官方 Expo 技能包括eas-simulator。安装后重启或刷新你的 AI 智能体会话即可生效。完整的技能清单与说明见 README.md。 仓库是开源的MIT 协议所有技能文件都可以直接阅读eas-simulator技能的完整参考文档位于 plugins/expo/skills/eas-simulator/。三、启动前的 3 个前置检查云模拟器是限量开放的服务不是每个账号都默认可用。开始前请依次确认1️⃣ 账号已登录Linux 服务器没有浏览器服务器/CI 环境无法走浏览器登录需要设置EXPO_TOKEN环境变量在 expo.dev 个人主页 → Account → Access Tokens 创建然后用下面的命令验证身份npx --yes eas-clilatest whoami2️⃣ 项目已关联 EAS且配置了 iOS Bundle ID在 Expo 项目目录有app.json的目录下执行npx --yes eas-clilatest init # 首次运行创建/关联 EAS 项目 npx expo config --json # 确认 ios.bundleIdentifier 已设置⚠️ 新建的应用经常缺少ios.bundleIdentifier例如dev.你的名字.应用名缺少它构建会失败。3️⃣ 确认账号已开通 EAS Simulatornpx --yes eas-clilatest simulator:availability --json返回available: true就可以继续返回false说明你的账号还在等待开通该功能在逐步放量先别启动会话走本地或 EAS Build 等常规路径即可。 小技巧所有命令都建议写成npx --yes eas-clilatest ...的形式——它保证用的是最新 CLIsimulator:*命令在较老版本里不存在免去命令找不到的烦恼。四、5 步实操在 Linux 上启动云 iOS 模拟器会话整个流程遵循同一个核心循环start启动会话→ install装应用→ drive驱动→ stop停止。第 1 步启动云会话npx --yes eas-clilatest simulator:start --platform ios --type agent-device \ --non-interactive --name Linux服务器首次测试几点说明远端模拟器从开机到就绪约需90 秒到几分钟start的自带等待不可靠用下一步确认状态--name强烈建议每次都带上——它会显示在会话列表里方便日后再来排查命令执行后会自动生成.env.eas-simulator文件保存会话 ID 与令牌务必把它加进.gitignore。第 2 步确认会话就绪npx --yes eas-clilatest simulator:get --json看到status: IN_PROGRESS且带有remoteConfig字段说明云模拟器已经在线。第 3 步安装你的应用云模拟器启动时是空白的——没有 Expo Go没有任何应用必须先安装构建产物npx --yes eas-clilatest simulator:exec npx agent-devicelatest install \ 你的bundleId 本地.app路径 --platform ios如果应用构建在 EAS 云端产物是一个 URL改用install-from-source url让云端 VM 自己下载避免大文件上传。第 4 步启动应用并截图# 启动应用 npx --yes eas-clilatest simulator:exec npx agent-devicelatest open bundleId --platform ios # 截图下载到本地 npx --yes eas-clilatest simulator:exec npx agent-devicelatest screenshot ./first-shot.pngstart命令还会打印一个webPreviewUrl——把它复制到本地浏览器就能实时观看云模拟器的画面这个 URL 只能在你自己的浏览器里打开不能丢给云设备去访问。第 5 步停止会话重要npx --yes eas-clilatest simulator:stopEAS 云模拟器是按使用计费的付费服务--non-interactive模式不会自动停止会话。忘记 stop 的会话会持续产生费用可用simulator:list查看遗留会话。五、驱动云模拟器像真机一样点击和输入装好应用后用agent-device通过simulator:exec调用驱动设备。最常用的一组动词命令动词作用snapshot -i抓取 UI 无障碍树得到e1、e2等元素引用iOS 上需要等几十秒属正常现象press e2点击元素——注意动词是press没有tapfill e1 文字向输入框填写内容screenshot 路径截图保存为 PNGrecord start/record stop 路径录屏——动画、转场、手势等动的效果用它静态截图证明不了典型交互循环snapshot -i看界面 →press点击 →screenshot确认结果。完整动词清单见 references/controllers.md。想指定 iPad 或特定机型start时加--device即可比如--device iPad Pro 13-inch (M5)会话内也可通过控制器的--device参数切换设备按名称匹配传 UDID 会报DEVICE_NOT_FOUND。六、进阶玩法开发构建 隧道实时热更新代码这是 EAS 云模拟器最有价值的用法官方称为 Mode C云上的开发构建dev build通过隧道连接你 Linux 服务器上本地运行的 Metro 服务之后你每改一行代码云模拟器都会通过Fast Refresh自动刷新画面——改完即见的循环在 Linux 上也能跑通。要点只有两条详细命令见 references/run-your-app.md先起 Metro再开云会话expo start --tunnel启动带隧道的 Metro 服务再用simulator:start的--build-id--open-url参数让云模拟器安装、启动开发构建并自动连接顺序不能反远端在启动过程中打开连接 URL不重试Metro 必须先就绪。⚠️ 一个新手最容易踩的坑Release 静态构建的 JS 是打包时冻结的永远无法热更新。想要改完即见装 Release 构建然后重连 Metro 是没用的必须安装开发构建dev build。七、常见问题快速排错指南排错时先对照这张速查表绝大多数问题都能直接命中完整版在 references/troubleshooting.md症状原因与解法simulator:start not foundCLI 太旧——改用npx --yes eas-clilatest ...not enabled for this account账号未开通云模拟器属限量放量中勿反复重试走本地/EAS Build 替代路径ERR_NGROK_3200/Remote daemon is unavailable会话闲置太久导致隧道断开——整场会话作废重新 start从头 install→open→drive截图显示旧内容装的是 Release 构建代码冻结在构建时刻改走 Mode C 开发构建截图看起来对但界面不对可能静默回退到了本地模拟器——用simulator:get --json核对会话 ID 确认在远端 VM 上pod install报 ASCII-8BIT 编码错误用LANGen_US.UTF-8 LC_ALLen_US.UTF-8前缀重跑会话忘关产生费用simulator:list找到遗留会话simulator:stop --id id停掉 应用崩溃时不要靠猜iOS 会话可以直接拉取设备日志和崩溃报告崩溃发生时需先hold住日志流否则日志尾部为空方法见 references/logs-and-crashes.md。八、成本与使用须知 EAS Simulator 是付费 EAS 服务会话用量按账号的定价与配额计费详见 expo.dev 定价页✅simulator:availability是只读检查不创建会话、不产生费用⏱️ 会话可用--max-duration-minutes设置硬性最长时间注意只有agent-device/argent的活动才重置空闲计时浏览器预览不会 云模拟器的构建是免签名的EAS 不会索要证书或凭据 同一台机器上同时开多个会话会互相覆盖.env.eas-simulator多会话场景请用显式--id指定。总结Linux 服务器跑 iOS 应用的完整路线回顾一下今天走过的路装技能npx skillslatest add expo/skills --skill *查资格simulator:availability确认账号已开通开会话simulator:start --platform ios --name 会话名装应用install/install-from-source驱动它snapshot -i→press→screenshot或开隧道实时热更新收尾simulator:stop别忘清会话从此我在 Linux 上怎么测 iOS这个问题有了官方答案EAS Skills EAS 云模拟器从 CLI 到 AI 智能体驱动一条命令链走完全程。【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/gh_mirrors/skills9/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表