Privacy Tools Guide

Understanding iOS privacy settings is essential for developers building privacy-conscious applications and power users who want granular control over their data. Apple’s privacy architecture has evolved significantly, with iOS 19 and iOS 20 introducing new toggle options and refining existing controls. This guide examines every privacy-relevant toggle available in current iOS versions, explaining their technical implications and providing practical configuration strategies.

Location Services: Granular Control Architecture

Location Services represents one of the most complex permission systems in iOS. The settings panel provides multiple access levels that developers must handle correctly in their applications.

Access Level Toggles

Navigate to Settings → Privacy & Security → Location Services to access these controls:

For developers implementing location features, the relevant API calls include:

// Requesting location authorization
import CoreLocation

let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

// For always authorization (requires justification in Info.plist)
locationManager.requestAlwaysAuthorization()

The NSLocationWhenInUseUsageDescription and NSLocationAlwaysAndWhenInUseUsageDescription keys in Info.plist are mandatory for these permissions to function.

Location Services System Services

Several system services also use location data. Review these under “System Services” at the bottom of the Location Services screen:

Disable these individually if you prefer not to participate in location-based learning features.

App Tracking Transparency: Controlling Cross-App Data

Introduced in iOS 14.5 and refined in subsequent versions, App Tracking Transparency (ATT) requires apps to request permission before tracking users across other companies’ apps and websites.

Managing Tracking Permissions

Settings → Privacy & Security → Tracking contains the global “Allow Apps to Request to Track” toggle. When disabled, iOS automatically denies all tracking requests from applications, though developers may still present limited features.

Individual app tracking permissions appear as a list below this toggle. Each app can have:

For developers, the ATT framework requires implementing ATTrackingManager.requestTrackingAuthorization() before accessing the Identifier for Advertisers (IDFA):

import AppTrackingTransparency

ATTrackingManager.requestTrackingAuthorization { status in
    switch status {
    case .authorized:
        // IDFA available, implement attribution
    case .denied, .restricted:
        // Handle restricted tracking
    case .notDetermined:
        // User hasn't made a choice yet
    @unknown default:
        break
    }
}

Safari Privacy Features

Safari provides numerous privacy toggles that affect both browsing and web application behavior.

Privacy Dashboard Settings

Settings → Safari → Privacy & Security contains these essential toggles:

JavaScript and Content Blocking

Developers should understand how these settings affect web applications:

For web developers testing these features, Safari’s Developer menu includes options to disable these protections temporarily during development.

Privacy Auditing with App Privacy Report

iOS includes built-in privacy auditing that reveals how apps use granted permissions.

Enabling App Privacy Report

Settings → Privacy & Security → App Privacy Report provides a 7-day history showing:

This feature generates detailed logs useful for security audits:

# Export privacy report data via Xcode (requires developer tools)
# Useful for analyzing app behavior programmatically

Developers can use this report to verify their applications only request necessary permissions and don’t make unexpected network calls.

Advanced: Developer Privacy Settings

For developers building and testing applications, additional settings exist beyond standard user controls.

Development Settings

Enable “Developer Mode” in Settings → Privacy & Security to access:

Entitlements Verification

Verify your app’s privacy entitlements using:

# Check app entitlements
codesign -d --entitlements - /path/to/app.app

# Requested privacy manifest items
# Appear in the app's privacy manifest

Lockdown Mode for Sensitive Deployments

iOS Lockdown Mode provides extreme privacy protection for users requiring maximum security.

What Lockdown Mode Disables

When enabled, Lockdown Mode restricts:

This mode is designed for high-risk users such as journalists, activists, and executives handling sensitive information.

Configuration Recommendations

For users seeking optimal privacy without sacrificing functionality:

  1. Review Location Permissions: Set most apps to “While Using” rather than “Always”
  2. Keep Tracking Disabled: Maintain the global tracking toggle off
  3. Enable Safari Protections: Keep cross-site tracking prevention active
  4. Regular Privacy Audits: Check App Privacy Report weekly for anomalies
  5. Limit Third-Party Keyboards: Use only Apple’s built-in keyboard for sensitive input

Built by theluckystrike — More at zovo.one