openclaw - 💡(How to fix) Fix Question: should iOS background location claims include UIBackgroundModes=location?

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Static-analysis report, not a device-runtime repro: OpenClaw appears to have docs, runtime code, and plist copy for background location behavior when Always location permission is enabled, but the generated iOS background modes omit location.

I am filing this as an apparent docs/runtime/config mismatch and a maintainer-intent question, not as a confirmed end-to-end runtime bug.

Evidence I checked:

  • apps/ios/README.md has a Location Automation use case and asks QA to verify background location capability.
  • apps/ios/Sources/Model/NodeAppModel.swift handles backgrounded location.get requests, returns LOCATION_BACKGROUND_UNAVAILABLE unless the in-app mode is always, and requires authorizedAlways for background access.
  • apps/ios/project.yml and apps/ios/Sources/Info.plist say OpenClaw can share location in the background when Always is enabled.
  • UIBackgroundModes includes audio and remote-notification, but not location.

Root Cause

Static-analysis report, not a device-runtime repro: OpenClaw appears to have docs, runtime code, and plist copy for background location behavior when Always location permission is enabled, but the generated iOS background modes omit location.

I am filing this as an apparent docs/runtime/config mismatch and a maintainer-intent question, not as a confirmed end-to-end runtime bug.

Evidence I checked:

  • apps/ios/README.md has a Location Automation use case and asks QA to verify background location capability.
  • apps/ios/Sources/Model/NodeAppModel.swift handles backgrounded location.get requests, returns LOCATION_BACKGROUND_UNAVAILABLE unless the in-app mode is always, and requires authorizedAlways for background access.
  • apps/ios/project.yml and apps/ios/Sources/Info.plist say OpenClaw can share location in the background when Always is enabled.
  • UIBackgroundModes includes audio and remote-notification, but not location.

Code Example

If the iOS app claims background location support, the generated project/plist
configuration must include UIBackgroundModes=location.

---

openclaw/openclaw @ 367d584ee3bc563bfb74eee96f16017eceb6b41a
  RED: observed_project_background_modes=['audio', 'remote-notification']

local branch fix/ios-background-location-mode @ d1b1e37eec2e86e1ac06b93170026258b7b11cb8
  GREEN

---

examples/openclaw-background-location/run_live_repo.sh

---

UIBackgroundModes:
  - audio
+ - location
  - remote-notification
RAW_BUFFERClick to expand / collapse

Summary

Static-analysis report, not a device-runtime repro: OpenClaw appears to have docs, runtime code, and plist copy for background location behavior when Always location permission is enabled, but the generated iOS background modes omit location.

I am filing this as an apparent docs/runtime/config mismatch and a maintainer-intent question, not as a confirmed end-to-end runtime bug.

Evidence I checked:

  • apps/ios/README.md has a Location Automation use case and asks QA to verify background location capability.
  • apps/ios/Sources/Model/NodeAppModel.swift handles backgrounded location.get requests, returns LOCATION_BACKGROUND_UNAVAILABLE unless the in-app mode is always, and requires authorizedAlways for background access.
  • apps/ios/project.yml and apps/ios/Sources/Info.plist say OpenClaw can share location in the background when Always is enabled.
  • UIBackgroundModes includes audio and remote-notification, but not location.

Semantic TDD Proof

Invariant used for the static proof:

If the iOS app claims background location support, the generated project/plist
configuration must include UIBackgroundModes=location.

Result:

openclaw/openclaw @ 367d584ee3bc563bfb74eee96f16017eceb6b41a
  RED: observed_project_background_modes=['audio', 'remote-notification']

local branch fix/ios-background-location-mode @ d1b1e37eec2e86e1ac06b93170026258b7b11cb8
  GREEN

Command used for the proof from the Semantic TDD repo:

examples/openclaw-background-location/run_live_repo.sh

Possible Repairs

If background location is intended, one alignment fix is to add location to UIBackgroundModes in both generated iOS proof surfaces:

UIBackgroundModes:
  - audio
+ - location
  - remote-notification

If background location is not intended for App Store/privacy/review reasons, the alternative valid repair is to remove or soften the background-location claims in README/plist copy and align the runtime behavior accordingly.

Scope

This proves one specific static docs/runtime/config/platform mismatch under the invariant above. It does not claim a full end-to-end device runtime failure or full OpenClaw CI verification.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Question: should iOS background location claims include UIBackgroundModes=location?