Overview
The Dataspike Mobile SDK enables you to embed a full identity verification flow directly into your mobile application. It is built on an embedded Flutter module and supports native iOS, Android, and Flutter integrations.| Platform | Minimum Version |
|---|---|
| Android | SDK 21+ |
| iOS | 16.0+ |
iOS
Native Swift integration via CocoaPods
Android
Native Kotlin integration via Gradle
Flutter
Direct Dart package integration
Prerequisites
Before integrating the SDK, complete these steps:Install Flutter
Install Flutter on your development machine using the official documentation.For Android, you can alternatively follow the AAR-based setup.
Get your API token
Create an account and obtain your API token from the Dataspike Dashboard.
Create a verification
Use the Create Verification endpoint to generate a
verification_url_id (also referred to as shortId).iOS Integration
Example project: Sample iOS Project Repository
1. Add the Flutter module
From your iOS project root, add the SDK as a Git submodule:2. Configure CocoaPods
Update yourPodfile following the example Podfile or the Flutter Podfile guide.
The following permission flags are required in your Podfile build settings:
3. Configure Xcode
Disable User Script Sandboxing: Open Xcode → Target → Build Settings and set User Script Sandboxing to NO. Add required permissions to yourInfo.plist:
| Key | Required |
|---|---|
NSCameraUsageDescription | Always |
NSPhotoLibraryUsageDescription | Always |
NSMotionUsageDescription | Always |
NSLocalNetworkUsageDescription | Debug only |
NSBonjourServices | Debug only |
NSBonjourServices, add the values _dartVmService._tcp and _googlecast._tcp.
4. Start the verification flow
5. Update the submodule
To update the SDK to a specific version:Android Integration
Example project: Sample Android Project Repository
1. Add the Flutter module
From your Android project root:2. Configure settings.gradle
Update yoursettings.gradle.kts to include the Flutter module:
3. Update build.gradle
Follow the example build.gradle or the Flutter guide.4. Add permissions
Add these permissions to yourAndroidManifest.xml:
5. Start the verification flow
Flutter Integration
Example projects: In-repo example · Standalone example
1. Add the dependency
Add the SDK to yourpubspec.yaml:
2. Configure platform permissions
- iOS
- Android
Add to your
Info.plist:NSCameraUsageDescriptionNSPhotoLibraryUsageDescriptionNSMotionUsageDescriptionNSLocalNetworkUsageDescription(Debug only)
Podfile build settings (example):3. Start the verification flow
On Apple Silicon machines, Flutter-based integration may require running Xcode under Rosetta for proper testing and dependency compatibility.
Verification Statuses
TheonVerificationCompleted callback returns one of the following statuses:
| Status | Description |
|---|---|
Completed | The verification flow finished successfully. |
Expired | The verification session expired before completion. |
Failed | The verification flow encountered an error. |
Known Limitations
Device-only verification (iOS)
Device-only verification (iOS)
Verification is fully supported only on real devices. iOS simulators may not work correctly. Simulator support improvements are planned for future releases.
Slow image loading in Debug builds
Slow image loading in Debug builds
In Debug configuration, image loading during verification may be significantly slower. Always test the verification flow using the Release build configuration for accurate performance.
Target & Pod configuration (iOS)
Target & Pod configuration (iOS)
To prevent simulator build failures, create a separate iOS target for verification:This keeps device-only dependencies isolated from your main app target and CI pipelines.
Android ABI support
Android ABI support
Flutter supports AOT builds only for
armeabi-v7a, arm64-v8a, and x86_64. Remove unsupported ABIs like mips or x86 from your project configuration.Troubleshooting
LLDB initialization issues (iOS)
LLDB initialization issues (iOS)
If Flutter debugging doesn’t work correctly, set up the LLDB init file following the official guide.You may also need to set the iOS platform version in the Flutter module podspec:
Local network permission issues (iOS)
Local network permission issues (iOS)
Flutter tools require local network access for the Dart VM Service. Ensure the required permissions are added to your
Info.plist and allowed in iOS system settings. See the official documentation.Apple Silicon build issues
Apple Silicon build issues
On Apple Silicon Macs, you may encounter simulator architecture issues. Follow the official guide to exclude
arm64 for iOS simulators or adjust CocoaPods build settings.