Доступність: внутрішній попередній перегляд. Застосунок iOS ще не розповсюджується публічно.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Що він робить
- Підключається до Gateway через WebSocket (LAN або tailnet).
- Надає можливості вузла: Canvas, знімок екрана, захоплення камерою, місцезнаходження, режим розмови, голосове пробудження.
- Отримує команди
node.invokeі повідомляє події стану вузла.
Вимоги
- Gateway, що працює на іншому пристрої (macOS, Linux або Windows через WSL2).
- Мережевий шлях:
- Той самий LAN через Bonjour, або
- Tailnet через unicast DNS-SD (приклад домену:
openclaw.internal.), або - Ручний host/port (резервний варіант).
Швидкий старт (сполучення + підключення)
- Запустіть Gateway:
- У застосунку iOS відкрийте Settings і виберіть виявлений gateway (або увімкніть Manual Host і введіть host/port).
- Схваліть запит на сполучення на хості gateway:
requestId.
Перед схваленням знову виконайте openclaw devices list.
Необов’язково: якщо вузол iOS завжди підключається з жорстко контрольованої підмережі, ви
можете погодитися на автоматичне схвалення вузла під час першого підключення з явними CIDR або точними IP:
role: node
без запитаних scopes. Сполучення operator/browser і будь-яка зміна role, scope, metadata або
public-key все одно потребують ручного схвалення.
- Перевірте підключення:
Push на основі relay для офіційних збірок
Офіційно розповсюджувані збірки iOS використовують зовнішній push relay замість публікації сирого APNs token у gateway. Вимога на боці Gateway:- Застосунок iOS реєструється в relay за допомогою App Attest і StoreKit app transaction JWS.
- Relay повертає непрозорий relay handle і send grant, обмежений областю реєстрації.
- Застосунок iOS отримує ідентичність сполученого gateway і включає її в реєстрацію relay, тому relay-backed реєстрація делегується цьому конкретному gateway.
- Застосунок пересилає цю relay-backed реєстрацію до сполученого gateway через
push.apns.register. - Gateway використовує збережений relay handle для
push.test, фонових пробуджень і wake nudges. - Базова URL-адреса gateway relay має збігатися з relay URL, вбудованою в офіційну/TestFlight збірку iOS.
- Якщо застосунок пізніше підключається до іншого gateway або збірки з іншою базовою URL-адресою relay, він оновлює реєстрацію relay замість повторного використання старої прив’язки.
- Немає relay token на рівні всього розгортання.
- Немає прямого APNs key для офіційних/TestFlight relay-backed надсилань.
- Установіть офіційну/TestFlight збірку iOS.
- Установіть
gateway.push.apns.relay.baseUrlна gateway. - Сполучіть застосунок із gateway і дайте йому завершити підключення.
- Застосунок автоматично публікує
push.apns.registerпісля того, як має APNs token, операторська сесія підключена, а реєстрація relay успішна. - Після цього
push.test, пробудження для повторного підключення і wake nudges можуть використовувати збережену relay-backed реєстрацію.
Фонові сигнали alive
Коли iOS пробуджує застосунок через silent push, background refresh або significant-location event, застосунок намагається виконати коротке повторне підключення вузла, а потім викликаєnode.event з event: "node.presence.alive".
Gateway записує це як lastSeenAtMs/lastSeenReason у metadata сполученого вузла/пристрою лише
після того, як відома автентифікована ідентичність вузлового пристрою.
Застосунок вважає фонове пробудження успішно записаним лише тоді, коли відповідь gateway містить
handled: true. Старіші gateway можуть підтверджувати node.event через { "ok": true }; така відповідь
сумісна, але не зараховується як довговічне оновлення last-seen.
Примітка щодо сумісності:
OPENCLAW_APNS_RELAY_BASE_URLусе ще працює як тимчасове env-перевизначення для gateway.
Автентифікація і потік довіри
Relay існує, щоб забезпечити два обмеження, які прямий APNs-on-gateway не може надати для офіційних збірок iOS:- Лише справжні збірки OpenClaw iOS, розповсюджені через Apple, можуть використовувати розміщений relay.
- Gateway може надсилати relay-backed push лише для пристроїв iOS, які сполучилися саме з цим gateway.
-
iOS app -> gateway- Застосунок спочатку сполучується з gateway через звичайний потік автентифікації Gateway.
- Це дає застосунку автентифіковану сесію вузла плюс автентифіковану операторську сесію.
- Операторська сесія використовується для виклику
gateway.identity.get.
-
iOS app -> relay- Застосунок викликає кінцеві точки реєстрації relay через HTTPS.
- Реєстрація включає доказ App Attest плюс StoreKit app transaction JWS.
- Relay перевіряє bundle ID, доказ App Attest і доказ розповсюдження Apple та вимагає офіційний/production шлях розповсюдження.
- Саме це блокує локальні Xcode/dev збірки від використання розміщеного relay. Локальна збірка може бути підписаною, але вона не задовольняє офіційний доказ розповсюдження Apple, якого очікує relay.
-
gateway identity delegation- Перед реєстрацією relay застосунок отримує ідентичність сполученого gateway з
gateway.identity.get. - Застосунок включає цю ідентичність gateway у payload реєстрації relay.
- Relay повертає relay handle і send grant, обмежений областю реєстрації, делеговані цій ідентичності gateway.
- Перед реєстрацією relay застосунок отримує ідентичність сполученого gateway з
-
gateway -> relay- Gateway зберігає relay handle і send grant з
push.apns.register. - Під час
push.test, пробуджень для повторного підключення і wake nudges gateway підписує запит на надсилання своєю власною ідентичністю пристрою. - Relay перевіряє як збережений send grant, так і підпис gateway щодо делегованої ідентичності gateway з реєстрації.
- Інший gateway не може повторно використати цю збережену реєстрацію, навіть якщо якось отримає handle.
- Gateway зберігає relay handle і send grant з
-
relay -> APNs- Relay володіє production APNs credentials і сирим APNs token для офіційної збірки.
- Gateway ніколи не зберігає сирий APNs token для relay-backed офіційних збірок.
- Relay надсилає фінальний push до APNs від імені сполученого gateway.
- Щоб не зберігати production APNs credentials у користувацьких gateway.
- Щоб уникнути зберігання сирих APNs tokens офіційних збірок на gateway.
- Щоб дозволити використання розміщеного relay лише для офіційних/TestFlight збірок OpenClaw.
- Щоб запобігти надсиланню wake pushes одним gateway на пристрої iOS, що належать іншому gateway.
apps/ios/fastlane/.env зберігає лише
автентифікацію App Store Connect / TestFlight, як-от ASC_KEY_ID і ASC_ISSUER_ID; він не налаштовує
пряму доставку APNs для локальних збірок iOS.
Рекомендоване сховище на хості gateway:
.p8 і не розміщуйте його в checkout репозиторію.
Шляхи виявлення
Bonjour (LAN)
Застосунок iOS переглядає_openclaw-gw._tcp на local. і, коли налаштовано, той самий
домен wide-area DNS-SD discovery. Gateway у тій самій LAN автоматично з’являються з local.;
міжмережеве виявлення може використовувати налаштований wide-area домен без зміни типу beacon.
Tailnet (міжмережевий)
Якщо mDNS заблоковано, використайте unicast DNS-SD зону (виберіть домен; приклад:openclaw.internal.) і Tailscale split DNS.
Див. Bonjour для прикладу CoreDNS.
Ручний host/port
У Settings увімкніть Manual Host і введіть хост gateway + port (за замовчуванням18789).
Canvas + A2UI
Вузол iOS рендерить canvas WKWebView. Використовуйтеnode.invoke, щоб ним керувати:
- Хост canvas Gateway обслуговує
/__openclaw__/canvas/і/__openclaw__/a2ui/. - Він обслуговується з HTTP-сервера Gateway (той самий порт, що й
gateway.port, за замовчуванням18789). - Вузол iOS автоматично переходить до A2UI під час підключення, коли оголошено URL хоста canvas.
- Поверніться до вбудованого scaffold через
canvas.navigateі{"url":""}.
Зв’язок із Computer Use
Застосунок iOS є мобільною поверхнею вузла, а не бекендом Codex Computer Use. Codex Computer Use іcua-driver mcp керують локальним робочим столом macOS через інструменти MCP;
застосунок iOS надає можливості iPhone через команди вузла OpenClaw,
такі як canvas.*, camera.*, screen.*, location.* і talk.*.
Агенти все ще можуть керувати застосунком iOS через OpenClaw, викликаючи команди
вузла, але ці виклики проходять через протокол вузла gateway і підпорядковуються обмеженням iOS
для переднього плану/фону. Використовуйте Codex Computer Use
для локального керування робочим столом і цю сторінку для можливостей вузла iOS.
Canvas eval / snapshot
Голосове пробудження + режим розмови
- Голосове пробудження і режим розмови доступні в Settings.
- Talk-capable вузли iOS оголошують можливість
talkі можуть декларуватиtalk.ptt.start,talk.ptt.stop,talk.ptt.cancelіtalk.ptt.once; Gateway дозволяє ці push-to-talk команди за замовчуванням для довірених Talk-capable вузлів. - iOS може призупиняти фоновий звук; вважайте голосові функції best-effort, коли застосунок неактивний.
Поширені помилки
NODE_BACKGROUND_UNAVAILABLE: виведіть застосунок iOS на передній план (команди canvas/camera/screen цього потребують).A2UI_HOST_NOT_CONFIGURED: Gateway не оголосив URL поверхні Canvas Plugin; перевіртеplugins.entries.canvas.config.hostу конфігурації Gateway.- Запит на сполучення ніколи не з’являється: виконайте
openclaw devices listі схваліть вручну. - Повторне підключення не вдається після перевстановлення: token сполучення Keychain було очищено; повторно сполучіть вузол.