---
title: "Geofencing Limitations (Android & iOS)"
slug: "limitations"
updated: 2025-11-12T14:55:00Z
published: 2025-11-12T14:55:00Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Geofencing Limitations (Android & iOS)

# Overview

This page summarizes platform-specific limits and behavior that affect geofencing on Android and iOS. Understanding these constraints helps you configure location permissions correctly, set realistic expectations for event cadence, and plan reliable testing.

---

## Limitations

### Android

- Devices running Android API level 29 or higher require background location permission. The user must select “Allow all the time” for the Geofence API to function correctly.
- On single-user devices, there is a limit of 100 geofences per app. For multi-user devices, the limit applies per device user.
- On Android 8.0 (API level 26) and higher, when an app is running in the background while monitoring a geofence, the device processes geofencing events every few minutes.
- Users must enable Wi-Fi, mobile network, and Google Location Accuracy for the Geofence API to perform as intended.
- When an app runs in the background on Android 8.0 or later, updates are delivered in batches several times per hour.
- For further details regarding battery optimization, see [Android Location and Battery Optimization](https://developer.android.com/guide/topics/location/battery).

---

### iOS

- A maximum of 20 locations can be monitored within a small area (e.g., a 500-meter radius).
- iOS does not support fake GPS servers. Therefore, Mapp uses .gpx files to simulate GPS locations during testing.
- Push notifications will not be sent if the user’s device does not have an active network connection.
- Apps typically receive a location notification when the device moves 500 meters or more from the last reported position. Notifications are sent no more frequently than once every five minutes.
- If the device has network access, Location Management is more likely to deliver notifications promptly. For further details, refer to the [Apple Core Location documentation](https://developer.apple.com/documentation/corelocation/cllocationmanager/1423531-startmonitoringsignificantlocati?language=objc).

---

## Location Permission Pop-Up Specifications (iOS)

Popup options vary depending on the device model and iOS version. Location access should always be set to “Always Allow.” See the table below for specific guidance.

| **Device / Software Version** | **Pop-Up Options** | **Comments** |
| --- | --- | --- |
| **iPhone X (iOS 13.5.1)** | 1. Allow While Using App 2. Allow Once 3. Don’t Allow | The user should open *Settings > Location*, find the application, and choose **Always Allow**. |
| **iPhone 6 (iOS 12.4.6)** | 1. Only While Using the App 2. Always Allow 3. Don’t Allow | Selecting **Always Allow** is sufficient. If not selected, push notifications will not be delivered until the user manually enables **Always** in the location settings. |

---

### Creating a .gpx File and Adding It to a Project

1. Download [Google Earth Pro](https://www.google.com/earth/versions/#earth-pro).
2. Use the **Ruler** tool to create a detailed route.
3. Download the `.gpx` file and add it to your Xcode project used for geotesting.

For step-by-step instructions on generating a .gpx file, visit [Starpath GPX Guide](https://www.starpath.com/gpx/).
