Hi,
I’m implementing ePassport reading in an iOS app using a third-party KYC identity verification SDK (the SDK handles the NFC logic internally).
Before adding any specific AID, the NFC session would start normally and iOS showed the system popup asking the user to hold the passport near the device. However, the passport was never read , the session just stayed there with no progress or data returned.
I then tried enabling the ICAO ePassport AID:
A0000002471001
After adding this, the build failed with the following signing error:
Provisioning profile "iOS Team Provisioning Profile: com.sandrotbilisi.DigitalCurrency" doesn't include the com.apple.developer.nfc.readersession.iso7816.select-identifiers entitlement.
Has anyone encountered this behavior when working with ePassports? Do I need special entitlement approval from Apple for this AID?
Thank you.
This error would be explained by having placed the com.apple.developer.nfc.readersession.iso7816.select-identifiers entries in your entitlements file as opposed to the Info.plist, where they belong.
For every entry in the entitlements file, the provisioning profile has to have a matching valid entry. As this is not an "entitlement" in the literal sense, it belongs to the Info.plist.
As for why you were not able to read the passport, that is something you will need to check with your SDK provider. Passports and such identification documents have security protocols implemented which require the app to have implemented the protocol. If you are expecting the SDK to solve this issue for you, you should ask them how to use it. Otherwise you would have to implement the appropriate security protocol in code yourself.