Appearance
Changelog
2.13.2
- Fix: Timeouts no longer produce a generic
SessionInvalidatederror. The SDK now reports the actual server close reason (e.g.MAX_SESSION_TIME_EXCEEDED) orconnectionTimeout - Improved: All NFC dialog error messages are now routable through the
nfcStatusLocalizationcallback - New: Typed
ReadingStepcases for NFC dialog error localization:.connectionLost,.connectionTimedOut,.readingIncomplete,.operationCancelled,.incorrectAccessKey,.authenticationFailed,.fileReadFailed.- Use these in
nfcStatusLocalizationinstead of string matching
2.13.1
- Fix: User cancel during NFC reading is now correctly reported as
UserInvalidatedSessioninstead ofConnectionLost - Fix: NFC timeout (no tag found within 60s) now returns
EmrtdConnectorError.nfcTimeoutinstead of a rawSessionInvalidatederror
2.13.0
- Improved: Compatibility with certain Asian identity documents that don't tolerate redundant application selection
- Improved: Faster error recovery when NFC connection is lost during chip communication
- Fix: WebSocket connection is now properly closed when validation fails
- Improved: Logging in diagnostic sessions
2.12.0
- Fix: Chip Authentication relay now works correctly for documents requiring server-side key agreement
- Fix: Face image parsing for passports with non-standard DG2 encoding
- Improved: Diagnostic logging for relay and access control flows
2.11.0
- New: Add
connector(_:didClose:)delegate callback that always fires when a session ends- Provides
CloseInfowithtrigger,code,reason, andpostConfirmed - Use
info.postConfirmedto check if the result was posted successfully - Eliminates ambiguity when WebSocket connections drop before server confirmation
- Deprecates
connectorDidSuccessfullyPostToServer(useinfo.postConfirmedinstead)
- Provides
2.10.8
- Fix: more robust close handling and NFC logging
2.10.7
- Bugfix: More stable NFC handling
2.10.6
- Optimize MF/CardAccess flow (to avoid CoreNFC timeouts)
- Diagnostics: Log outbound APDU headers (no payload) for diagnostic sessions
2.10.5
- Diagnostics: Added detailed APDU monitoring events
- Optimize MF/CardAccess flow
2.10.2
- Diagnostics: Added monitoring events
- Compatibility: Improving read stability on sensitive IDs (e.g. VNM).
2.10.1
- Fix: Connector validation result summary now correctly reports an error when Passive Authentication (SOD signature) is invalid.
2.10.0
- Build: Simplify xcframework creation and set the connector binary to build for iOS 13+.
- Avoid redundant DG1 reads after CA by reusing DG1 provided by the DocVal Server in the handback flow.
- Improve post-CA behavior
- Improve NFC status reporting, surface clearer error messages
2.9.1
- Fix: Chip Authentication on Russian passports
- Fix: Fixes an issue with reading DG1/DG2 on some Chinese passports
- Fix: Increases compatibility with Italian ID cards
- Build: Weak-link
CoreNFCin the provided xcframework so consuming apps are not forced into a strong CoreNFC dependency.
2.9.0
- Simplified distribution and usage: binary-only Connector with a single XCFramework.
- No API changes required. Usage as before: Integrate via CocoaPods or SPM
- Note: Version jump comes from unification with the underlying core framework.
2.1.2
- Fix: Stabilize fire-and-forget mode (
receiveResult=false) - Example: Hide result output when
receiveResult=false
2.1.1
- Fix: Remove NFC race-guard and double-cleanup; update KinegramEmrtd framework for stable async flow
2.1.0
- New: Automatic PACE selection based on document info
- New overloads:
validate(with:documentType:issuingCountry:)andstartValidation(..., documentType:issuingCountry:) - Enables PACE polling automatically for known PACE-enabled ID cards (currently FRA, OMN), keeps it off for passports
- New overloads:
- New:
DocumentKindenum and MRZ helperDocumentKind.fromMRZDocumentCode(_:) - Fix: Improve robustness of WebSocket connect/teardown
2.0.15
- New Feature: Add
usePACEPollingparameter to support more documents- Required for reading French ID cards (FRA ID), Omani ID cards (OMN ID), etc.
- Please be aware, that this requires changes to your app's entitlements (add
PACEtocom.apple.developer.nfc.readersession.formats) as described in the Installation guide
2.0.14
- Added support for CocoaPods again (in addition to SPM)
2.0.13
Major Version Release - V2
This is a major rewrite of the eMRTD Connector with significant architectural changes and breaking changes from V1.
Key Improvements:
- Solves the iOS 20-second NFC timeout issue by moving APDU exchanges to the device
- Simple one-call validation API with
validate(with:) - Modern Swift concurrency with async/await
- Improved error handling and progress reporting
Breaking Changes:
- New WebSocket protocol - Uses v2 protocol
- Complete API redesign - Async/await based, simplified interface
- Minimum iOS version increased from iOS 13.0 to iOS 15.0
- Swift Package Manager only - CocoaPods support removed
- Binary dependency required - Now includes
KinegramEmrtd.xcframework
See the V1 to V2 Migration Guide for detailed migration instructions.
1.2.1
- Add a flag
enableDiagnosticsto interface functions for enabling diagnostics in the DocVal Server.
1.2.0
- Add support for setting custom HTTP headers for the WebSocket connection. See
connectmethod inEmrtdConnectorclass.
1.1.3
- Separate github build jobs (no functional change to framework)
1.1.2
- Optimized github build action (no functional change)
1.1.1
- Added also validationID to ObjC interface
1.1.0
- Add a simplified and ObjectiveC compatible version, build as static framework. See folder
ObjCFrameworkfor more info.
1.0.0
- Improve documentation
- Rename library module from
KTAKinegramEmrtdConnectortoKinegramEmrtdConnector! Update your import statements accordingly.
0.0.9
- Add instruction to set "Team" in signings config to Readme
0.0.8
- Also parse the optional field "files_binary" in the EmrtdPassport Result JSON
0.0.4
- Show Details if Passive Authentication not successful
- Enforce Document Number to be Upper Case
- Minor Improvements to the Documentation
0.0.3
- Minor Improvements to the Documentation
0.0.2
- Improvements to the API of
EmrtdConnector - Make Example App use revised EmrtdConnector API
- Additions to the Documentation
0.0.1
- Everything begins