Skip to content

iOS setup

Minimum: iOS 15.0. Set it in Xcode (Runner → General → Minimum Deployments) or in your Podfile:

ios/Podfile
platform :ios, '15.0'

The plugin ships a PrivacyInfo.xcprivacy declaring no tracking, no collected data and no required-reason APIs. Xcode includes it in your app’s privacy report automatically. You don’t need to change your own manifest.

The plugin never asks for location access. To enable the location-based mock-location signals:

  1. Add a usage description to ios/Runner/Info.plist:

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Used to verify your location isn't being spoofed.</string>
  2. Request authorisation with your usual location plugin.

Without authorisation, only the jailbreak-tweak signal can fire, and locationPermissionGranted is false.

Jailbreak detection tries to spawn /bin/ls and to write a file under /private/, both of which only succeed outside the app sandbox. These are common jailbreak heuristics, but they use APIs App Review may ask about. Mention jailbreak detection in your review notes if your app is questioned.

  • The Simulator always reports emulator detected (simulator_target).
  • Jailbreak detection returns not applicable on the Simulator. It can’t be jailbroken, and its file system shows parts of the host Mac, which would otherwise fire the path checks. Test jailbreak handling on a physical device.