iOS 配置
Voltra 渲染到原生 iOS 实时活动和小组件,所以你需要一个嵌入了 Lynx SDK 并 注册了 Voltra 原生模块的 iOS 宿主 app。最快的路径是直接用仓库里的 参考宿主: 这是一个可运行的 Xcode 工程(xcodegen + CocoaPods),原生模块和 Widget Extension 都已经接好了。
本页覆盖两种工作流:
- 模拟器:支持热重载(Debug 构建,需开发服务器)
- 真机 iPhone:打包嵌入 JS bundle(Release 构建,可离线运行)
一键 AI 构建提示词(模拟器)
把下面这段贴到 Claude Code、Cursor 或任意编码 agent 里。它会带你从一份 全新克隆走到模拟器上跑起一条实时活动。
在一台已启动的 iOS 模拟器上构建并启动 Voltra Lynx iOS demo。
仓库:
<repo root>。iOS 宿主:voltra-lynx/host/ios/LynxVoltra/。 JS bundle 源:voltra-lynx/packages/example-app/。前置条件见
voltra-lynx/host/ios/README.md§Prerequisites。严格按 §Rebuild from clean 的步骤顺序执行。xcrun simctl launch …之后,用xcrun simctl io <sim_id> screenshot ./lynx-app-launch.png截一张 主屏,并报告文件路径。开发服务器必须保持后台运行,不要杀掉。验收标准:模拟器显示 Voltra demo 导航屏(不是白屏,不是红色错误屏), 并且至少有一次点击能在灵动岛里真实拉起一条实时活动。
模拟器:全新 checkout 7 步起步
启动后会看到 Voltra 导航屏:一个 demo 列表(Basic、Flight Tracker、 Music Player、Workout Tracker、Weather Widget 等)。点任意一个 demo, 对应的 SwiftUI 实时活动就会出现在灵动岛里。
真机 iPhone:Release / 嵌入 bundle
如果想要在真机上做离线 demo(装完之后不需要开发服务器,也不需要 Mac),
请用 Release 构建。ViewController.swift 会自动切换路径:
…同时 project.yml 里声明了一个构建前脚本:仅当 CONFIGURATION = Release
时,会在 packages/example-app/ 里执行 pnpm build,并把
dist/main.lynx.bundle 拷进 .app 的资源里。
真机配置清单
真机构建
如果刚刚给模拟器构建过,直接 iphoneos 构建会因为
'Lynx/LynxConfig.h' file not found 而失败,除非先 rm -rf build/。
Swift 桥接头扫描会缓存模拟器架构的 header maps,跟设备架构冲突。
安装到设备
如果 devicectl 报
CoreDeviceService was unable to locate a device matching the requested device identifier,这是 CoreDevice 在抽风,通常是因为设备的 iOS 版本比
Xcode 自带的 DeviceSupport 还新(比如 Xcode 26.0 配 iOS 26.4.2 的
iPhone)。这种情况下回退到 Xcode UI:
在工具栏选择你的 iPhone,把 Edit Scheme → Run → Build Configuration 设为 Release,然后 Cmd+R。Xcode 会按需下载缺失的 DeviceSupport、签名、 安装并启动。
首次启动时信任开发者证书
iOS 会拒绝运行用陌生开发者证书签名的 app,直到你信任它一次:
设置 → 通用 → VPN 与设备管理 → Apple Development: huxpro@gmail.com → 信任
之后 app 就会以 LynxVoltra 的名字出现在主屏。打开它后,嵌入的
main.lynx.bundle 会经由 DemoLynxProvider 从 Bundle.main 加载,
不再需要开发服务器。
免费 Apple 账号下的实时活动 / 小组件
用 免费 的 Apple Developer 账号,实时活动和主屏小组件可以正常工作, 但 provisioning profile 会在 7 天后过期,需要每周重新构建并重装一次。 付费的 Apple Developer Program 账号下,签名是长期有效的。
App Group group.com.voltra.lynx.demo(用于在 app 和扩展之间共享小组件
数据)只要两个 target 用同一个 team 签名,Xcode 会自动帮你 provisioning。
