Location Permission Dialog Changes in iOS 15
Apple refined its privacy architecture in iOS 15 by streamlining how apps request geographic data and how users grant access. This article outlines the specific modifications made to the location permissions dialog box, detailing the interface adjustments, precise location toggling, one-time permission flows, and the integration of dedicated system-level location UI components.
Refined Precise Location Controls
While iOS 14 introduced the concept of approximate location, iOS 15 refined how this choice is presented in the permission alert. The dialog features an embedded map preview with a visible Precise: On / Precise: Off toggle in the top-left corner of the map frame.
- Default States: When the alert appears, users can toggle this switch before selecting an authorization level.
- Visual Feedback: Toggling the switch instantly changes the map display from a tight pinpoint to a wide, shaded circular area, visually confirming to the user that only an approximate region (roughly 1 to 10 square miles) will be shared.
Streamlined Authorization Options
The main interaction buttons within the initial dialog box focus on limiting persistent background tracking. The primary options presented to the user are:
- Allow Once: Grants access strictly for the current app session. Once the app is closed or suspended, the permission expires, requiring the prompt to reappear upon subsequent requests.
- Allow While Using App: Grants access whenever the application is open and in use on the screen.
- Don't Allow: Blocks the app from accessing any location hardware.
The option to "Always Allow" remains excluded from the initial prompt. Apple requires apps to first gain foreground access before the system can present a secondary prompt asking if the user wants to upgrade permissions to background tracking.
Temporary Full-Accuracy Prompts
If a user initially chooses to share only approximate location, iOS 15 enables apps to request a temporary upgrade to precise location for specific tasks (such as turn-by-turn navigation or hailing a ride).
When triggered, a secondary dialog box appears stating that the app needs precise location for a specific purpose. This prompt includes:
- Allow Once: Grants precise location exclusively for the current session, automatically reverting to approximate location once the session ends.
- Keep Approximate Location (or Don't Allow): Denies full accuracy without breaking the app's existing approximate location access.
Integration
with the Location Button (CLLocationButton)
Alongside dialog changes, iOS 15 introduced the native
CLLocationButton element, which fundamentally changes how
location permissions can be triggered:
- Instead of displaying the traditional modal permission dialog box, developers can embed a standardized system button directly into the app interface (such as a "Share Current Location" button).
- Tapping this button automatically grants temporary, one-time location access for that specific interaction without launching the standard multi-option dialog box.
- If a user has previously denied location permissions globally for that app, tapping this button still grants a one-time exception for that specific tap, minimizing user friction while maintaining explicit consent.