Industry

Understanding approximate location permissions in iOS 14

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.

The changes

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.

approximate location

The user's choice will be visible in settings and accessible programmatically as accuracyAuthorization (.fullAccuracy or .reducedAccuracy) on CLLocationManager.

approximate location settings

If the user selects .reducedAccuracy, 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.

map

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.

Screen Shot 2020-07-06 at 1.03.51 PM

How to prepare

Because 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 requestTemporaryFullAccuracyAuthorization(withPurposeKey:completion:).

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.