Skip to content

Changelog

2.13.1

  • Fix: NFC session invalidation errors are no longer misclassified as connection-lost errors

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

2.12.0

  • Fix: Face image parsing for passports with non-standard DG2 encoding

2.11.0

  • New: Add connector(_:didClose:) callback that always fires when a session ends (Connector)
    • Provides CloseInfo with trigger, code, reason, and postConfirmed
    • Use info.postConfirmed to check if the result was posted successfully
    • Deprecates connectorDidSuccessfullyPostToServer (use info.postConfirmed instead)

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 (Connector)

2.10.5

  • Diagnostics: Added detailed APDU monitoring events (Connector)
  • Optimize MF/CardAccess flow

2.10.2

  • Diagnostics: Added monitoring events (Connector)
  • Compatibility: Improving read stability on sensitive IDs (e.g. VNM).

2.10.1

  • Fix: Connector: DocVal Server Passive Authentication status now correctly fails when the SOD signature is invalid. (Connector)

2.10.0

  • Improve CA handover/handback flow and logging (Connector)
  • Reuse DG1 provided by the server after chip authentication instead of re-reading it from the chip in connector flows. (Connector)
  • Remove the extra SELECT AID after CA handback to align the connector path with the offline flow and improve compatibility with sensitive passports.
  • Refine NFC progress reporting
  • Improve error propagation by bridging EmrtdReaderError to NSError with descriptive messages instead of generic "error N".
  • Build: Simplify framework linking, keep CoreNFC weak-linked and prepare the xcframeworks for iOS 13+ deployment.

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 CoreNFC in xcframeworks so integrating apps are not forced into a strong CoreNFC dependency

2.9.0

  • This repository now builds and packages both SDKs: Core (KinegramEmrtd.xcframework) and Connector (KinegramEmrtdConnector.xcframework).
  • Core release process remains unchanged; Connector is published to the separate distribution repository.

2.8.1

  • Fix: Deterministic continuation resumption in startWithHandover; prevent hangs on early NFC invalidation (Connector)

2.8.0

  • New Feature: Add usePACEPolling parameter to support more documents
    • Required for reading French ID cards (FRA ID), Omani ID cards (OMN ID), etc.
    • This is an optional parameter in readAndVerify(), to not affect existing passport reading functionality
    • Requires changes to your app's entitlements (add PACE to com.apple.developer.nfc.readersession.formats) as described in the Installation guide
  • Fixed some problems reading FRA and ITA ID cards

2.7.13

  • Proceed when master file selection fails

2.7.12

  • Fixed incorrect success checkmark in iOS NFC sheet when passport scan was interrupted and mandatory files (DG1, DG2, SOD) were not fully read

2.7.11

  • Add connection confirmation mechanism

2.7.10

  • Ensure consistent user feedback for both successful and failed NFC operations

2.7.6

  • Fixed progress callback for DG file reading

2.7.5

  • Fixed reading problems for some German ID cards

2.7.4

  • Renamed KinegramInfo to KinegramEmrtdInfo

2.7.1

  • Add Privacy Manifest (PrivacyInfo.xcprivacy) for App Store privacy requirements
  • Add support for server-driven Chip Authentication (Connector)

2.5.5

  • Fix deployment target

2.5.4

  • Improve initialization of Secure Messaging

2.5.3

  • Improvements in error handling

2.5.2

  • Migration to Swift 5.5 async/await syntax
  • Improvements in error handling

2.4.9

  • Solved issues with reading some passports

2.4.8

  • Improve support for Italian ID cards

2.4.7

  • Support reading Italian ID cards

2.4.6

  • Fix verifying rsassaPss signatures with parameters

2.4.5

  • Optimized build process

2.4.4

  • Solved issues with reading images from some national ID cards

2.4.3

  • Work around non-standard master file selection. This makes some national ID cards work (e.g. Morocco)

2.4.2

  • Further optimizations in framework build process

2.4.1

  • Optimized build process to avoid linker collisions

2.4.0

  • Solved issues with reading images from some newer passports (Spain/Portugal)
  • The build method has been changed so that only one *.xcframework is required and the dependencies to OpenSSL and OpenJPEG are compiled into the framework.
  • Add Swift Package Manager (SPM) support

2.2.7

  • Update podspec, specify git sources using SSH instead of HTTPS

2.2.6

  • Also try SHA1 for Active Authentication ECDSA Signature verification if DG14 includes no ActiveAuthenticationInfo and SHA256 failed (Ukraine passports)

2.2.5

  • Parse JPEG-2000 images (face-photo, signature) with incorrect "Capture Resolution Box" values

2.2.4

  • Fix verifying SODs with inaccurate CMS SignerInfo Signer-ID (Ukraine passports)
  • Add details to log in case AA fails

2.2.3

  • Default to SHA256 for Active Authentication ECDSA Signature verification if DG14 includes no ActiveAuthenticationInfo

2.2.2

  • Fix verifying the SOD signature

2.2.1

  • Fix CA Bug where keyID is 0x00 and Parameters are ambiguous

2.2.0

  • Rename library module from emrtd-sdk to KinegramEmrtd! Update your import statements accordingly.
  • Update CSCA master list