Specifications¶
The NFC SDK reads the contactless chip of ICAO 9303 identity documents (ID cards, residence permits, e-passports). It requires NFC capabilities declared at build time.
The following capabilities are required for the SDK to function correctly:
- Near Field Communication Tag Reading (entitlement): The host app must enable the Near Field Communication Tag Reading capability, so its entitlements include
com.apple.developer.nfc.readersession.formatswith theTAGformat. The App ID and provisioning profile must carry the same capability.
- ISO 7816 application identifiers (Info.plist): The host app must declare the eMRTD application identifiers,
A0000002471001(eMRTD LDS1 application) andA00000024710FF(eMRTD LDS1, alternative identifier):<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key> <array> <string>A0000002471001</string> <string>A00000024710FF</string> </array>
NFCReaderUsageDescription(Info.plist): The text shown by the system when the reading session starts, e.g. "We use NFC to read the chip of your identity document."
No camera or other permission is required.
Requirements¶
- The SDK is compatible with iOS 16.0 and later.
- The SDK requires a physical iPhone. NFC is not available on the iOS Simulator, and iPads have no NFC reader. On an unsupported device, the SDK closes right away with
nfcUnavailablewithout showing any screen. - The SDK is integrated using the zipped
.xcframeworkfiles. See Installation. - The third-party code the SDK uses, including OpenSSL, is linked inside it with its symbols hidden, so it does not conflict with another OpenSSL version included by the host app.
Module size¶
The following table shows the estimated final compressed contribution of the SDK in an iOS app. It is intended to approximate the footprint of the final packaged artifact as stored and distributed through the Apple App Store.
Total final compressed contribution of VeridasNfcSDK in an iOS app: 29.00 MB
| Artifact | Version | Final compressed contribution |
|---|---|---|
| VeridasNfcSDK | 1.0.0 | 2.10 MB |
| VeridasCommonDefinitions | 1.4.0 | 1.15 MB |
| VeridasCommonUtils | 1.4.0 | 0.31 MB |
| VeridasGenuineDS | 1.4.0 | 2.11 MB ¹ |
| VeridasNativeDS | 1.4.0 | 4.39 MB |
| VeridasSDKCore | 1.4.0 | 18.94 MB |
| Total | 29.00 MB |
¹ Lower than in previous releases. Figures are now measured assuming Xcode 27 or later, which requires a minimum deployment target of iOS 15.0. With that target, apps no longer bundle Apple's Swift Concurrency back-deployment library (about 2.4 MB compressed), which earlier figures attributed to this row.
Estimated peak RAM usage¶
The following table shows an estimated upper bound of peak RAM usage during normal SDK operation.
| Artifact | Estimated peak RAM usage |
|---|---|
| VeridasNfcSDK | Up to 80 MB |
RAM usage can vary depending on the device, OS version, and the point in the flow. This figure is an indicative upper-bound estimate observed across several devices and representative scenarios, and should be understood as guidance rather than an exact fixed value.