# indigitall-cordova-plugin — Dependencies

**Plugin ID:** `indigitall-cordova-plugin`  
**Version:** 5.1.0  
**Author:** Smart2me S.L.  
**Platforms:** Android, iOS

---

## Engine Requirements

| Engine | Minimum version |
|---|---|
| cordova | `>= 8.1.2` |
| cordova-android | `>= 13.0.0` |
| cordova-ios | `>= 8.0.0` |
| Xcode | `>= 16.0.0` |
| iOS (OS) | `>= 15.0.0` |

---

## Android

### Libraries

| Dependency | Version | Repository |
|---|---|---|
| `com.indigitall:android` | `7.0.+` | Maven Central |
| `androidx.cardview:cardview` | `1.0.0` | Maven Central |

> **Note:** Additional dependencies like `firebase-messaging`, `play-services-location`, and `appcompat` are included transitively via `com.indigitall:android`

### Build classpath

| Dependency | Version |
|---|---|
| `com.android.tools.build:gradle` | `8.7.0` |
| `com.google.gms:google-services` | `4.3.13` |

### Required files

- `google-services.json` must be present in the Android project root.

### Permissions

| Permission | Description |
|---|---|
| `android.permission.INTERNET` | Required for all network communication |
| `android.permission.RECEIVE_BOOT_COMPLETED` | Restores scheduled tasks after device reboot |
| `android.permission.WAKE_LOCK` | Keeps the CPU awake to process notifications |

---

## iOS

### CocoaPods

| Pod | Version |
|---|---|
| `indigitall-ios` | `~> 6.21.0` |

### Swift Package Manager (SPM)

| Package | Source | Version |
|---|---|---|
| `cordova-ios` | github.com/apache/cordova-ios | `>= 8.0.0` |
| `ios-sdk-pod` (Indigitall) | bitbucket.org/indigitallfuente/ios-sdk-pod | `6.21.0 ..< 6.22.0` |

### Native frameworks

| Framework |
|---|
| `CoreLocation.framework` |

### Deployment target

- **Minimum iOS version:** 15.0 (deployment target `15.6`)

### Background modes (`UIBackgroundModes`)

| Mode | Description |
|---|---|
| `remote-notification` | Required for push notifications |
| `fetch` | Background content fetching |
| `location` | Background location updates |
| `processing` | Background processing tasks |

### Push Notification entitlements

The following entitlements must be configured in the Xcode project:

| Environment | Value |
|---|---|
| Debug | `aps-environment: development` |
| Release | `aps-environment: production` |

### Info.plist — Location usage descriptions

| Key | Default description |
|---|---|
| `NSLocationWhenInUseUsageDescription` | This app requires access to your location when the screen is on and the app is displayed. |
| `NSLocationAlwaysAndWhenInUseUsageDescription` | This app requires constant access to your location in order to track your position, even when the screen is off or the app is in the background. |
| `NSLocationAlwaysUsageDescription` *(iOS 11 and below)* | This app requires constant access to your location in order to track your position, even when the screen is off or the app is in the background. |
