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

# Flutter installation

> Add the package, set platform minimums, and configure iOS permissions.

## Add the package

```bash theme={null}
flutter pub add clariodesk
```

Or in `pubspec.yaml`:

```yaml theme={null}
dependencies:
  clariodesk: ^0.1.3
```

## Platform requirements

| Platform | Minimum              | Hardware key                                        |
| -------- | -------------------- | --------------------------------------------------- |
| iOS      | 13.0                 | Secure Enclave when present, else software Keychain |
| Android  | API 23 (Marshmallow) | StrongBox when supported, else TEE Keystore         |

### Android

Set `minSdkVersion 23` (or higher) in `android/app/build.gradle`:

```gradle theme={null}
android {
  defaultConfig {
    minSdkVersion 23
  }
}
```

### iOS

Set the platform in `ios/Podfile`:

```ruby theme={null}
platform :ios, '13.0'
```

If you let users attach photos, videos, or files (see
[Attachments](/concepts/attachments)), add the usage strings to
`ios/Runner/Info.plist`:

```xml theme={null}
<key>NSPhotoLibraryUsageDescription</key>
<string>Attach screenshots to your support messages.</string>
<key>NSCameraUsageDescription</key>
<string>Take a photo to attach to your support messages.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Record video to attach to your support messages.</string>
```

## Verify

```dart theme={null}
await ClarioDesk.init(apiKey: 'pk_live_…');
// init completing without throwing means the device registered (or reused an
// existing key). Next, wire identity. See the lifecycle guide.
```

<Card title="Next: lifecycle integration" icon="user-check" href="/flutter/lifecycle">
  Wire the four host events that touch the SDK.
</Card>
