Summary
CLLocationSourceInformation.isSimulatedBySoftware
(iOS 15+) fails to detect location spoofing when using third-party tools like LocaChange, despite Apple's documentation stating it should detect simulated locations.
Environment
- iOS 18.0 (tested and confirmed)
- Physical device with Developer Mode enabled
- Third-party location spoofing tools (e.g., LocaChange etc.)
Expected Behavior
According to Apple's documentation, isSimulatedBySoftware
should return true
when:
"if the system generated the location using on-device software simulation. "
Actual Behavior
Tested on iOS 18.0: When using LocaChange
sourceInformation.isSimulatedBySoftware
returnsfalse
This occurs even though the location is clearly being simulated.
Steps to Reproduce
- Enable Developer Mode on iOS 18 device
- Connect device to Mac via USB
- Use LocaChange to spoof location to a different city/country
- In your app, request location updates and check
CLLocation.sourceInformation?.isSimulatedBySoftware
- Observe that it returns
false
orsourceInformation
isnil
- Compare with direct Xcode location simulation (Debug → Simulate Location) which correctly returns
true