Skip to content

Add headless sync pipeline bootstrap trigger for iOS LocationTrackingService #222

@stef-k

Description

@stef-k

Context

PR #221 (fix for #220) added a sync pipeline bootstrap trigger in the Android LocationTrackingService.LogLocationToQueue() fallback path. When Android kills the app process and restarts the sticky foreground service headlessly, LocationPipelineWiring.EnsureBootstrappedAsync() is now called to re-wire delegates, drain services, and timeline storage.

The iOS LocationTrackingService does not yet have an equivalent trigger.

What needs to happen

Assess whether iOS has an equivalent headless restart scenario (e.g., significant location change wakeups, background fetch) where the sync pipeline could be null, and if so, add the same LocationPipelineWiring.EnsureBootstrappedAsync() call in the iOS fallback path.

Key differences from Android

  • iOS uses a different lifecycle model (no sticky foreground services)
  • iOS background location uses CLLocationManager significant-change monitoring or region-based wakeups
  • iOS may fully terminate and re-launch the app for location events, which would go through normal MAUI startup

Acceptance criteria

  1. Determine if iOS has a code path where LocationTrackingService runs with null delegates (no MAUI bootstrap)
  2. If yes, add LocationPipelineWiring.EnsureBootstrappedAsync() call in the iOS fallback path
  3. If no (iOS always goes through full app launch), document why and close this issue

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions