Understanding IOS 13 Location Permission: A Complete Guide To Privacy, Controls, And Implementation
The release of iOS 13 marked a significant turning point in mobile operating system history, particularly regarding how user privacy and data security are managed. Apple has long positioned privacy as one of its core brand values, and with iOS 13, the company introduced drastic changes to the CoreLocation framework. These updates fundamentally changed how applications request, receive, and maintain access to a user’s geographic coordinates.
Before these changes, applications could easily request continuous background tracking, often without the user fully understanding the long-term privacy implications. iOS 13 disrupted this paradigm by putting granular control back into the hands of consumers. This shift forced mobile application developers and marketers to completely rethink their user acquisition, onboarding, and data collection strategies.
Today, understanding the mechanics of iOS 13 location permissions is essential for both privacy-conscious users and developers aiming to build compliant, trust-based applications. By examining how these permissions function under the hood, we can better navigate the balance between personalized app experiences and personal data sovereignty.
Key Changes to Location Permissions in iOS 13
The architecture of iOS 13 introduced several key updates to the authorization dialogue boxes and background tracking mechanics. The primary goal was to eliminate "silent tracking"—a practice where apps gathered location data in the background without explicit, ongoing user awareness.
The Introduction of the "Allow Once" Option
One of the most visible updates in iOS 13 was the introduction of the "Allow Once" (or "Just Once") option in the system-level location authorization prompt. Prior to this release, users were forced to make a binary, long-term choice: either allow the app to access their location while in use, or deny access entirely.
The "Allow Once" permission acts as a temporary pass. It grants the application access to location services for a single active session. Once the user closes the app or it enters a suspended state in the background, the permission automatically expires. The next time the application launch requires location data, the system triggers the authorization prompt again. This feature is particularly useful for transactional apps, such as food delivery or ride-sharing services, where the user only needs to share their location for a brief window to complete a specific action.
The Deferral of "Always Allow"
Perhaps the most disruptive change for developers was the elimination of the direct "Always Allow" option from the initial location authorization dialog. In older iOS versions, an app could display a prompt asking for "Always Allow" right out of the gate. Starting with iOS 13, the system-level prompt only displays three options: "Allow While Using App", "Allow Once", and "Don't Allow".
If an application requires background location tracking (the "Always Allow" state), it must navigate a two-step deferred authorization flow. The app first requests "While Using" access. Only after the user has actively used the app and the background location triggers in the code does iOS display a second, independent system prompt. This secondary prompt asks the user if they wish to upgrade the app's permission level to "Always Allow" or keep it restricted to "While Using." This change ensured that users could not be tricked into granting permanent tracking access during their very first interaction with an app.
Periodic Background Tracking Maps
To maintain ongoing transparency, iOS 13 introduced automatic, periodic notifications showing users exactly when and where an app has been tracking them in the background. These notifications present a small map overlay plotting the precise coordinates the app recorded while running in the background.
Along with the map visual, the notification displays the specific reasoning the developer provided in their configuration files for needing background access. The user is then prompted with a simple choice: "Keep Only While Using" or "Always Allow." This serves as a regular reminder, preventing apps from silently compiling long-term location profiles of users who may have forgotten they granted background access months prior.
Technical Implementation for Developers
For iOS developers, the changes introduced in iOS 13 required a complete overhaul of how location managers are initialized and handled within the Swift or Objective-C codebase. To avoid application crashes or unexpected behavior, developers must carefully configure their Info.plist keys and handle authorization states dynamically.
To request location access, developers must include specific strings in their app's Info.plist file. These strings explain to the user why the application requires their location. If these keys are missing, the app will crash upon calling the location manager.
NSLocationWhenInUseUsageDescription: Explains why the app needs location while active.NSLocationAlwaysAndWhenInUseUsageDescription: Explains why the app needs background location access.
When requesting background access, the developer initiates the request using the CLLocationManager instance:
let locationManager = CLLocationManager() locationManager.delegate = self locationManager.requestAlwaysAuthorization()
Even though the code requests "Always" authorization, the system-level behavior in iOS 13 will initially present the user with the "While Using" prompt. The application must be prepared to handle a "temporary" state where the user has selected "While Using," while the system retains the pending "Always" status in the background.
Best practices dictate that developers should never request location permissions immediately upon the first app launch. Instead, the request should be contextualized. For example, developers should wait until a user clicks on a "Find Nearby Stores" button before displaying the prompt. This contextual approach significantly increases the likelihood that a user will grant permission, as they understand the direct value they receive in exchange for their data.
4 Steps to Share Your Location on WhatsApp (iOS & Android)
Comparison of Location Permission States (iOS 12 vs. iOS 13+)
To illustrate how these changes altered the user experience and developer capabilities, the following table compares the behavior of location permissions across iOS generations:
| Feature / State | iOS 12 Behavior | iOS 13+ Behavior | Impact on User Privacy |
|---|---|---|---|
| Initial Prompt Options | "Always Allow", "Only While Using", "Don't Allow" | "Allow While Using App", "Allow Once", "Don't Allow" | Prevents premature granting of permanent background tracking. |
| Temporary Access | Not available. | "Allow Once" option active for a single session. | High; allows one-time transactions without long-term tracking. |
| Background Prompts | Minimal notification of background tracking. | Interactive map notifications showing specific tracking points. | High visibility; alerts users to background data collection. |
| Always Allow Request Flow | Can be requested immediately on first launch. | Two-step deferred authorization required. | Prevents apps from forcing background permission during onboarding. |
| Developer API Handling | Direct callback based on user's instant choice. | Must handle "provisional" background authorization states. | Requires robust error handling and defensive programming. |
How to Manage Location Settings on iOS
If you are an iPhone user, managing your location privacy settings is straightforward. Apple provides a centralized dashboard within the operating system to review, modify, or completely revoke location access for any installed application.
To audit your current location settings, follow these steps:
- Open the Settings app on your iOS device.
- Scroll down and tap on Privacy & Security (or Privacy on older iOS versions).
- Tap on Location Services at the top of the menu.
- Ensure the master Location Services toggle is enabled if you wish to use GPS features globally.
From this screen, you will see a complete list of every application installed on your device that has requested location access. Next to each app name, the current permission state is displayed (e.g., Always, While Using, Never, or Ask Next Time).
To change an app's access level, tap on its name. You can change its permission status or toggle off Precise Location (introduced in iOS 14, which built upon the iOS 13 framework). Disabling precise location forces the app to only see your approximate location, which is ideal for weather apps or news services that do not need to know your exact street address.
Frequently Asked Questions
What happens if I choose "Allow Once" on an app?
When you select "Allow Once," the application can access your location data only during the active session. Once you close the app, lock your phone, or the app is suspended in the background for a set period, the permission is revoked. The next time you open the app and it attempts to access your location, you will be prompted again.
Why does my iPhone show me a map of where an app tracked me?
This is a privacy feature introduced in iOS 13 to prevent "silent tracking." If an app has been granted "Always Allow" permission and tracks your location in the background, iOS periodically displays a map detailing exactly where those tracking events occurred. This ensures you remain aware of which apps are actively monitoring your location when you aren't using them.
Can an app still track my location if I force close it?
If you force close an app (by swiping up on it in the App Switcher), the iOS system suspends its processes. Unless the app has been granted "Always Allow" permissions and utilizes specific iOS background modes (such as significant location changes or geofencing), it cannot actively track your location once it has been terminated by the user.
How does the iOS 13 location change affect battery life?
By encouraging users to choose "Allow Once" or "While Using App" instead of "Always Allow," iOS 13 naturally improved overall device battery life. Background GPS usage is highly resource-intensive; limiting the number of apps running location hardware in the background directly reduces battery drain and CPU usage.
As a developer, how do I handle a user denying location access?
Your application must fail gracefully. If a user selects "Don't Allow," your app should disable location-dependent features and, if necessary, show a friendly placeholder screen explaining how the user can manually re-enable permissions in the iOS Settings app if they wish to use those specific features.
Optimizing Mobile Privacy and Performance
Navigating the landscape of mobile privacy does not mean sacrificing the utility of your favorite applications. The structural improvements introduced in iOS 13 paved the way for a more transparent ecosystem where users and developers can cooperate fairly. By understanding how these permissions function, you can configure your device to maximize battery life, safeguard your personal movements, and enjoy a highly customized smartphone experience without compromise.
If you are a mobile app developer looking to optimize your app's user experience while maintaining strict compliance with Apple's evolving privacy guidelines, reach out to our mobile development consulting team today for an in-depth audit of your CoreLocation implementation.
