Frequently Asked Questions
Common questions and answers about implementing the MetaMap iOS SDK.General Questions
What are the minimum requirements for MetaMap iOS SDK?
What are the minimum requirements for MetaMap iOS SDK?
- iOS Version: iOS 13.0 or higher
- Swift Version: Swift 5.7
- SDK Download Size: 30 MB (reduced from 50 MB in version 3.22.5)
- Xcode: Xcode 14.0 or later recommended
Which version should I use?
Which version should I use?
- Latest security updates
- All new features including Incode SDK integration
- Resume verification after interruptions
- Best performance and smallest download size
Is the SDK compatible with SwiftUI?
Is the SDK compatible with SwiftUI?
MetaMapDelegateObserver pattern:Can I use the SDK with Objective-C?
Can I use the SDK with Objective-C?
How large is the SDK download?
How large is the SDK download?
- Version 3.13.2: Reduced to 3.66 MB
- Version 3.22.5: Optimized to 30 MB (from 50 MB)
Installation & Integration
How do I install the SDK using CocoaPods?
How do I install the SDK using CocoaPods?
-
Add to your Podfile:
-
Install:
-
Import in your code:
MetaMap-ID-SDK to MetaMapSDK in version 3.12.1.What permissions do I need to add to Info.plist?
What permissions do I need to add to Info.plist?
Do I need to add fonts to my project for customization?
Do I need to add fonts to my project for customization?
- Add font files (.ttf or .otf) to your Xcode project
- Add fonts to Info.plist:
- Reference in metadata:
Can I test on the iOS Simulator?
Can I test on the iOS Simulator?
- Document upload from gallery works
- Camera features have limited functionality
- Liveness detection requires a physical device
- Location services may behave differently
Configuration & Customization
How do I customize the button colors?
How do I customize the button colors?
What languages are supported?
What languages are supported?
- English (“en”) - default
- Spanish (“es”)
- French (“fr”)
- Portuguese (“pt”)
- Russian (“ru”)
- Turkish (“tr”)
- German (“de”)
- Italian (“it”)
- Polish (“pl”)
- Thai (“th”)
Can I remove the 'Powered by MetaMap' branding?
Can I remove the 'Powered by MetaMap' branding?
Does the SDK support dark mode?
Does the SDK support dark mode?
How do I pass custom metadata?
How do I pass custom metadata?
Verification Features
How do I implement re-verification for existing users?
How do I implement re-verification for existing users?
identityId in metadata:Can users resume verification after app interruption?
Can users resume verification after app interruption?
- Phone calls
- App backgrounding
- System alerts
What document types are supported?
What document types are supported?
- National ID cards
- Passports
- Driver’s licenses (including Brazilian driver’s licenses)
- Proof of residency documents
- Multi-page PDFs (version 3.20.1+)
Does the SDK support liveness detection?
Does the SDK support liveness detection?
- Passive liveness: Face mask and lens checks (version 3.22.2+)
- Active liveness: Video recording with face detection
- Voice liveness: Audio recording verification
- Incode SDK integration: Enhanced selfie and liveness verification (version 3.22.0+)
Can I skip certain verification steps?
Can I skip certain verification steps?
- OTP verification: Can be skipped in phone verification (version 3.20.1+)
- Document upload: Skip back functionality (version 3.15.6)
- Document steps: Configurable in dashboard
Is phone and email verification supported?
Is phone and email verification supported?
- Phone number verification with SMS OTP
- Email verification
- Option to skip OTP screen (version 3.20.1+)
- 30-second resend timer for SMS (version 3.9.6)
- Country selection
- Country restrictions (version 3.18.2+)
- Phone risk verification (version 3.22.3)
Callbacks & Data Handling
How do I handle verification completion?
How do I handle verification completion?
MetaMapButtonResultDelegate protocol:verificationCancelled also receives identityId and verificationId parameters.What's the difference between identityId and verificationID?
What's the difference between identityId and verificationID?
- identityId: Unique identifier for a user/identity. Remains the same across multiple verifications for the same person. Use this for re-verification.
- verificationID: Unique identifier for a specific verification session. Changes with each new verification attempt.
identityId to track users long-term, and verificationID to track individual verification sessions.How do I verify the results on my backend?
How do I verify the results on my backend?
- Send
identityIdandverificationIDto your backend - Use MetaMap’s REST API to verify:
- Check verification status and extracted data
- Optionally set up webhooks for real-time verification updates
Are verification callbacks always called?
Are verification callbacks always called?
- You set the delegate before calling
showMetaMapFlow: - Your view controller/class conforms to
MetaMapButtonResultDelegate - The object is still in memory when verification completes
MetaMapDelegateObserver is properly initialized in your view hierarchy.Security & Privacy
Is data encrypted during transmission?
Is data encrypted during transmission?
Where is verification data stored?
Where is verification data stored?
- MetaMap Dashboard
- REST API
- Webhooks
Does the SDK work with VPN or behind firewalls?
Does the SDK work with VPN or behind firewalls?
- IP restrictions (if configured) may block certain VPNs
- Version 3.13.0 shows IP restriction errors before the start screen
- WebSocket connections must be allowed for real-time features
- Check IP whitelist settings in dashboard
- Ensure firewall allows connections to MetaMap servers
- Test without VPN if problems persist
What analytics does the SDK collect?
What analytics does the SDK collect?
- Verification flow progress
- Error events and types
- Performance metrics
- User actions within the SDK
- Improve SDK performance
- Debug issues (via Sentry integration)
- Provide insights in your dashboard
Platform-Specific Questions
Does the SDK work on iPad?
Does the SDK work on iPad?
- Version 3.22.3: Fixed active liveness orientation capture on iPad
- Version 3.9.0: Fixed crashes specific to iPad
- Proper support for all iPad screen sizes and orientations
Is there a size limit for uploaded documents?
Is there a size limit for uploaded documents?
- Standard images: Typically up to 10MB per image
- PDFs: Multi-page support added in version 3.20.1
- Large files may take longer to upload on slower connections
Can I use the SDK in a cross-platform app?
Can I use the SDK in a cross-platform app?
- React Native: Official plugin available
- Flutter: Official plugin available (updated in version 3.9.3)
- Capacitor: Official plugin available (updated in version 3.9.3)
- Cordova: Official plugin available
What happens if the user's internet connection drops?
What happens if the user's internet connection drops?
- Clear error screens when connection is lost
- Ability to retry when connection is restored
- Automatic detection of network status
- WiFi to cellular transitions
- Complete connection loss
- Slow or unstable connections
Troubleshooting
The delegate methods are not being called, what should I check?
The delegate methods are not being called, what should I check?
-
Delegate not set before showing flow:
-
Protocol not implemented:
- Object deallocated: Ensure your view controller remains in memory during verification
-
For SwiftUI: Verify
MetaMapDelegateObserveris in your view hierarchy
I'm getting a pod install error, how do I fix it?
I'm getting a pod install error, how do I fix it?
-
Update CocoaPods:
-
Clear cache and reinstall:
-
Update repository:
-
Check platform version in Podfile:
Where can I find error codes and their meanings?
Where can I find error codes and their meanings?
- Check the error message shown in the SDK UI
- Review console logs for detailed error information
- Check MetaMap dashboard for verification status
- Contact MetaMap support with specific error codes
How do I report bugs or request features?
How do I report bugs or request features?
- Check existing issues: GitHub Issues
- Search for similar problems or requests
- If not found, create a new issue with:
- SDK version
- iOS version and device model
- Steps to reproduce
- Expected vs actual behavior
- Error logs if applicable
Getting More Help
If your question isn’t answered here:- Check the Troubleshooting Guide
- Review the Migration Guide for version-specific changes
- See the Changelog for recent updates
- Visit GitHub Issues
- Contact MetaMap support with detailed information about your use case