Documentation Index
Fetch the complete documentation index at: https://jdev-e8db0569.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Installation Issues
Pod Install Fails (iOS)
Symptom:
[!] CocoaPods could not find compatible versions for pod "SEONOrchSDK"
Solutions:
- Ensure your minimum iOS version is 13.0 or higher in your Podfile:
- Update your CocoaPods repository:
cd ios
pod repo update
pod install
cd ..
- If still failing, try clearing the cache:
cd ios
rm -rf Pods
rm Podfile.lock
pod cache clean --all
pod install
cd ..
Gradle Sync Fails (Android)
Symptom:
Could not find io.seon:orchestration-android-sdk
Solutions:
- Ensure
mavenCentral() is in your repositories in android/build.gradle:
allprojects {
repositories {
mavenCentral()
google()
}
}
- Check that your
minSdkVersion is at least 26:
android {
defaultConfig {
minSdkVersion 26
}
}
- Try cleaning and rebuilding:
cd android
./gradlew clean
./gradlew build
cd ..
Plugin Not Found
Symptom:
Could not resolve package 'seon_orchestration_flutter'
Solutions:
- Verify your
pubspec.yaml dependency is correct
- Run
flutter pub get again
- If using a path dependency, verify the path is correct
Runtime Errors
”SEON SDK not initialized” Error
Symptom:
SeonException(eNotInitialized): SEON SDK has not been initialized. Call initialize() first.
Solution:
You must call initialize() before calling startVerification(). The SDK remains initialized across multiple verification flows until dispose() is called:
// Initialize once
await SeonOrchestration.initialize(config);
// Can call startVerification() multiple times
final result = await SeonOrchestration.startVerification();
// When done, clean up resources
await SeonOrchestration.dispose();
Make sure initialization completes successfully before starting verification:
Future<void> _handleVerify() async {
try {
await SeonOrchestration.initialize(config);
final result = await SeonOrchestration.startVerification();
// Handle result...
} on SeonException catch (e) {
debugPrint('Error: $e');
}
}
Missing Permissions
Symptom: Verification fails immediately or SDK requests permissions that crash the app.
Ensure all required keys are in ios/Runner/Info.plist:<key>NSCameraUsageDescription</key>
<string>We need camera access for identity verification</string>
<key>NSMicrophoneUsageDescription</key>
<string>We need microphone access for identity verification</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need location access for identity verification</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>We need photo library access for identity verification</string>
Missing any of these will cause the app to crash when the SDK requests that permission.
Ensure all required permissions are in android/app/src/main/AndroidManifest.xml:<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
Device Testing Issues
Camera/Location Not Working on Device
Symptom: Verification starts but camera or location features don’t work.
Solutions:
- Handle permission denial in code:
final result = await SeonOrchestration.startVerification();
if (result.status == SeonVerificationStatus.missingLocationPermission) {
showDialog(
context: context,
builder: (ctx) => AlertDialog(
title: const Text('Permission Required'),
content: const Text('Please enable location services in Settings'),
actions: [
TextButton(onPressed: () => Navigator.pop(ctx), child: const Text('Cancel')),
TextButton(
onPressed: () => openAppSettings(),
child: const Text('Open Settings'),
),
],
),
);
}
-
Check device settings:
- iOS: Settings > Your App > Permissions
- Android: Settings > Apps > Your App > Permissions
-
Test on a different device — some devices may have hardware or OS limitations.
Build Fails on Simulator
Symptom: App builds and runs fine on device but fails on simulator.
Solution: The SEON SDKs require real device hardware. They are not designed to work on simulators or emulators.
Always test on real physical devices (iPhone/iPad for iOS, Android phone/tablet for Android).
If you need to develop without a device, you can mock the plugin in your app:
// In your test/development code
if (kDebugMode) {
debugPrint('Skipping verification in development');
// Return mock result
}
Debugging Tips
Enable Verbose Logging
debugPrint('Initializing SEON SDK...');
await SeonOrchestration.initialize(config);
debugPrint('SEON SDK initialized');
debugPrint('Starting verification...');
final result = await SeonOrchestration.startVerification();
debugPrint('Verification result: ${result.status}');
Check Native Logs
iOS (Xcode)
Android (Logcat)
- Open your project in Xcode
- Run on device
- Check Console for native logs
adb logcat | grep -i seon
Test Initialization Separately
Isolate initialization to narrow down issues:
try {
await SeonOrchestration.initialize(config);
debugPrint('SUCCESS: Initialization completed');
} on SeonException catch (e) {
debugPrint('FAILED: Initialization error: $e');
}
Getting Help
If you’re still experiencing issues:
- Check the API Reference for correct usage
- Review Platform Notes for platform-specific requirements
- Check the Architecture doc to understand how the bridge works
- Open an issue on GitHub with:
- Flutter version
- iOS/Android version
- Error messages
- Steps to reproduce