> For the complete documentation index, see [llms.txt](https://docs.sentiance.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sentiance.com/getting-started/sdk-integration/1.-requirements/ios.md).

# iOS

## Platform

### iOS 15.0 or Higher

This is the minimum supported iOS version. If you support an older iOS version, you can still include the Sentiance SDK, however, detections will not run.

### Xcode 26 or Higher

We recommend using the latest stable Xcode version and compiling against the latest iOS SDK version.

***

## Permissions

### Location <a href="#location" id="location"></a>

To collection location data in the background, the SDK requires the "**Always"** location permission. Additionally, **Precise Location** must be enabled in the app's location settings.

{% hint style="warning" %}
**This permission is mandatory**

Without this permission, SDK detections will not work. This permission enables the SDK to collection location data in the background, and make use of [region monitoring](https://developer.apple.com/documentation/corelocation/monitoring_the_user_s_proximity_to_geographic_regions?changes=la\&language=objc).
{% endhint %}

### Motion & Fitness <a href="#motion-and-fitness" id="motion-and-fitness"></a>

To collect motion activity data (e.g. walking, running), the SDK requires the Motion & Fitness permission.

{% hint style="info" %}
**This permission is optional**

When granted, this permission helps improve the quality of the detections. Therefore, it is **highly recommended** to ask the user to grant this permission.&#x20;
{% endhint %}

### Permission Considerations

<details>

<summary>Read more...</summary>

Apple provides some useful tips about [requesting permissions](https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/requesting-permission/) as part of their Human Interface Guidelines. Below are some additional things to consider for an optimal user experience when requesting permissions:

#### Privacy <a href="#privacy" id="privacy"></a>

* Request the permission only when your app clearly needs it.
* Explain why your app needs the permission.
* When your app requests permission for background locations or motion activities, a message will be shown to the user. You must configure this message by setting the value for the following keys in **Info.plist:**
  * `NSLocationAlwaysUsageDescription`
  * `NSLocationWhenInUseUsageDescription`
  * `NSLocationAlwaysAndWhenInUseUsageDescription`
  * `NSMotionUsageDescription`
* Keep the text short and specific. Be polite so the user does not feel pressured. There’s no need to include your app name.

#### Consistency <a href="#consistency" id="consistency"></a>

* Request a permission at launch only when necessary for your app to function.
* Use the system-provided alerts.

</details>

***

## Runtime

### iOS Region Monitoring Limits <a href="#motion-and-fitness" id="motion-and-fitness"></a>

The Sentiance SDK uses the [region monitoring](https://developer.apple.com/documentation/corelocation/monitoring-the-user-s-proximity-to-geographic-regions) feature provided by iOS. There is currently a per-app limit of 20 regions that can be monitored at any point in time. This limit is enforced by iOS.

For proper operation and detections, please ensure that the Sentiance SDK can monitor **2 regions** at any given time. If the SDK does not obtain at least two geofences required for its internal operation, it will trigger an off-the-grid event.

***

Get started by [including the SDK](/getting-started/sdk-integration/2.-including-the-sdk/android.md).
