openclaw/apps/ios
Mariano 6e7f1a6a1b
iOS onboarding: prevent pairing flicker during auto-resume (#20310)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 691808b747
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-18 19:39:41 +00:00
..
Config iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
ShareExtension iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
Sources iOS onboarding: prevent pairing flicker during auto-resume (#20310) 2026-02-18 19:39:41 +00:00
Tests iOS: add Apple Watch companion message MVP (#20054) 2026-02-18 13:37:41 +00:00
WatchApp iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
WatchExtension iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
fastlane feat(ios): auto-select local signing team (#18421) 2026-02-18 03:16:10 +08:00
.swiftlint.yml iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
LocalSigning.xcconfig.example iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00
README.md feat(ios): auto-select local signing team (#18421) 2026-02-18 03:16:10 +08:00
Signing.xcconfig fix(ios): restore auto-selected team for local signing (#19993) 2026-02-18 19:38:23 +08:00
SwiftSources.input.xcfilelist iOS: alpha node app + setup-code onboarding (#11756) 2026-02-08 18:08:13 +01:00
project.yml iOS: add APNs registration and notification signing config (#20308) 2026-02-18 19:37:03 +00:00

README.md

OpenClaw (iOS)

This is an alpha iOS app that connects to an OpenClaw Gateway as a role: node.

Expect rough edges:

  • UI and onboarding are changing quickly.
  • Background behavior is not stable yet (foreground app is the supported mode right now).
  • Permissions are opt-in and the app should be treated as sensitive while we harden it.

What It Does

  • Connects to a Gateway over ws:// / wss://
  • Pairs a new device (approved from your bot)
  • Exposes phone services as node commands (camera, location, photos, calendar, reminders, etc; gated by iOS permissions)
  • Provides Talk + Chat surfaces (alpha)

If your Gateway has the device-pair plugin installed:

  1. In Telegram, message your bot: /pair
  2. Copy the setup code message
  3. On iOS: OpenClaw → Settings → Gateway → paste setup code → Connect
  4. Back in Telegram: /pair approve

Build And Run

Prereqs:

  • Xcode (current stable)
  • pnpm
  • xcodegen

From the repo root:

pnpm install
pnpm ios:open

pnpm ios:open now runs scripts/ios-configure-signing.sh before xcodegen:

  • If IOS_DEVELOPMENT_TEAM is set, it uses that team.
  • Otherwise it prefers the canonical OpenClaw team (Y5PE65HELJ) when that team exists locally.
  • If not present, it picks the first non-personal team from your Xcode account (falls back to personal team if needed).
  • It writes the selected team to apps/ios/.local-signing.xcconfig (local-only, gitignored).

Then in Xcode:

  1. Select the OpenClaw scheme
  2. Select a simulator or a connected device
  3. Run

If you're using a personal Apple Development team, you may still need to change the bundle identifier in Xcode to a unique value so signing succeeds.

Build From CLI

pnpm ios:build

Tests

cd apps/ios
xcodegen generate
xcodebuild test -project OpenClaw.xcodeproj -scheme OpenClaw -destination "platform=iOS Simulator,name=iPhone 17"

Shared Code

  • apps/shared/OpenClawKit contains the shared transport/types used by the iOS app.