Build 60 – Background session redesign
Build 60 contains significant changes aimed at fixing location-session startup failures seen on some SideStore-resigned installations.
What was happening
SideStore can change Roam Control's bundle identifier when resigning the app.
On affected installations, the runtime bundle identifier could therefore differ from the background-task identifiers contained in the IPA. iOS could reject Roam Control's location BGTaskScheduler registration as a result.
In previous builds, that registration failure could prevent a fixed or walking session from starting.
What changed in Build 60
- Location BGTaskScheduler registration is now diagnostic only and no longer blocks location-session startup.
- Fixed and walking sessions now use an independent Core Location keep-alive while active.
- Location sessions no longer depend on successful BGTaskScheduler registration.
- Scheduler mismatches and registration failures are still retained in diagnostics and optional anonymous telemetry.
- Background keep-alive state is now included in Connection Health diagnostics.
- Stop & Restore, session completion and failures explicitly stop the keep-alive.
- Late permission callbacks after a session has stopped cannot restart it.
- Pairing, LocalDevVPN routing, RPPairing/DVT location simulation and walking calculations are otherwise unchanged.
Testing completed
Build 60 has been tested successfully on-device with:
- Fixed location simulation
- Walking simulation
- Backgrounding Roam Control
- Locking the device during an active session
- Returning to the app with the simulated location still active
- Stop & Restore and return to the real location
- Repeated session lifecycle handling
- Background keep-alive telemetry reaching
receivingUpdatesand stopping cleanly
The updated self-hosted telemetry ingestion, database fields, dashboard and CSV export have also been tested successfully with Build 60 events.
Automated tests covering scheduler independence, Core Location keep-alive lifecycle, failure handling, telemetry/privacy behaviour and release invariants also pass.
Why this is a pre-release
Build 60 is being published as a pre-release while we confirm the fix on SideStore installations that previously reproduced the bundle-identifier/BGTaskScheduler failure.
If you previously received “iOS cannot prepare the location session”, please test this build using the same SideStore setup.
If the problem remains, go to:
Settings → Connection Health → Copy Diagnostics
and include the copied diagnostics with your report.
Download
Install the attached RoamControl-0.9.2-build60.ipa through SideStore as normal.
SHA-256:
3667fef9a4c4bacda65e33691a6107c20febb93c229743230e01cb54c9856d14