Understanding approximate location permissions in iOS 14
Since this post was published, we introduced a new location data privacy checklist with the latest and greatest best practices and Radar capabilities. Check it out!
iOS 14, now in beta, allows users to share only their approximate location with apps rather than their precise location. In this post, we explain the changes and how to prepare.
In iOS 14, when you prompt for location permissions, the user can toggle between
Precise: On (precise location) and
Precise: Off (approximate location). Precise location is the default.
The user's choice will be visible in settings and accessible programmatically as
If the user selects
CLLocation objects are sent to
CLLocationManagerDelegate callbacks as usual, but the location is only recomputed about 4 times per hour.
Reduced accuracy locations are accurate to between 1 and 20 kilometers. Apple doesn't reduce the accuracy of location fixes by adding noise. Instead, they've carved up the world into regions, allowing approximate locations to preserve the user's current city when possible.
Approximate location also affects background location services. The significant location change service works, but locations are only recomputed about 4 times per hour. The visit monitoring service works, but returns only approximate locations. The region monitoring service (geofencing and beacons) does not work.
Finally, Apple is introducing App Store "nutrition labels," giving developers the opportunity to self-report data collection and privacy practices.
How to prepare
Precise: On is the default, we expect most users to choose precise location instead of approximate location.
Users who granted location permissions before iOS 14 will default to precise location after upgrading.
If your app only needs approximate location, you can prompt for approximate location only by setting
desiredAccuracy = kCLLocationAccuracyReduced on
CLLocationManager. If a user grants only approximate location, you can prompt for temporary precise location (e.g., during navigation, a curbside pickup, or a delivery) later by calling
The Radar SDK already handles inaccurate locations, so no upgrade is needed. Large geofences and Regions (country, state, DMA, and postal code detection) will continue to work, but Places (place, chain, and category detection) and small geofences will not work reliably if a user grants only approximate location.
Apple has yet again raised the bar for developers requesting location permissions. If you want to access precise location data, you must deliver value to the end user, you must be transparent, and you must get clear opt-in.
Our team works hard to stay on top of changes like these. Want to stay in the loop about additional changes? Follow us on Twitter @radarlabs or subscribe to our newsletter below.