CoreNFC ISO7816: provisioning profile doesn’t match entitlements for readersession.formats / iso7816.select-identifiers + NFCError 104 “Tag is not connected”

Hi all,

I’m building an iOS app that uses CoreNFC to communicate with a YubiKey 5C NFC over ISO14443 / ISO7816 and send APDUs (e.g. select an applet by AID).

Environment • Device: iPhone 13 Pro Max • iOS: 18.6.2 • Xcode: 26.1.1 (17B100) • API: NFCTagReaderSession(pollingOption: .iso14443) using NFCTag.iso7816

What I’m trying to do 1. Start NFCTagReaderSession(.iso14443) 2. Detect tag → connect 3. Send ISO7816 APDUs (SELECT AID, etc.)

Issue A — Entitlements / signing If I add ISO7816-related NFC entitlements, Xcode fails signing with an error like: • “Provisioning profile … doesn’t match entitlements file value for com.apple.developer.nfc.readersession.formats”

When I inspect the generated .mobileprovision, I only see something like: • com.apple.developer.nfc.readersession.formats = [NDEF, TAG, PACE]

…and I do not see an ISO7816 / select-identifiers entitlement (and the Developer portal UI doesn’t appear to let me enable it).

Questions: 1. Is ISO7816 access under com.apple.developer.nfc.readersession.formats restricted and requires Apple approval? If yes, what’s the correct request process? 2. Is com.apple.developer.nfc.readersession.iso7816.select-identifiers required for sending ISO7816 APDUs? If yes, how do developers obtain it / enable it for an App ID + provisioning profiles? 3. What is the Apple-supported way to configure entitlements/profiles for CoreNFC ISO7816 APDU communication with a token like a YubiKey?

Issue B — Runtime NFC error Separately (even when I can run), I intermittently/consistently get: • NFCError Code=104 (“Tag is not connected”)

This occurs after the tag is detected/connected when trying to establish a session or send APDUs. I’ve verified: • No phone case interference • Correct placement • Consistent detection “tick” from the phone for "Ready to Scan" prompt after tapping YubiKey 5C NFC device.

If helpful, I can share: • A minimal sample project • The exact entitlements I tried • Console logs around the Code 104 failure

Thanks!

ISO7816 application identifiers for NFC Tag Reader Session (ISO7816 application identifiers for NFC Tag Reader Session) while behaving like entitlements, they are not entered in the Entitlements file.

This key and the AIDs would be entered in the Info.plist instead, and as such, they do not need any special provisioning on the developer portal. You just need to know what the AIDs are.

Issue B could be related to not having the AIDs properly configured. So, once you have them configured properly the problem might go away. If it does not, then we can look into that further.

CoreNFC ISO7816: provisioning profile doesn’t match entitlements for readersession.formats / iso7816.select-identifiers + NFCError 104 “Tag is not connected”
 
 
Q