"Missing required entitlement" for NFCTagReaderSession

To read ePassports, besides adding the Near Field Communication Tag Reading in Capabilities, you will need to add the following AID key and value in info.plist:

<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
    <string>A0000002471001</string>
</array>

info.plistadd this keys to info.plist like this

<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
    <string>D2760000850101</string>
</array>
<key>com.apple.developer.nfc.readersession.felica.systemcodes</key>
<array>
    <string>12FC</string>
</array>

You have to add this keys to info.plist:

ISO7816 application identifiers for NFC Tag Reader Session

ISO18092 system codes for NFC Tag Reader Session

I don't know the value for this. I did an example of a project but I can't read anything from my ePassport. On Friday there will be an event where I hope that everything will become clear: link


I had the same problem, but it is gone after removing and adding Near Field Communication Tag Reading in Capabilities.

My entitlements file have a little differ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:example.com</string>
    </array>
    <key>com.apple.developer.nfc.readersession.formats</key>
    <array>
        <string>NDEF</string>
        <string>TAG</string>
    </array>
</dict>
</plist>

But I don't think this is it.

Also, you can try to modify Apple example to fit your needs: https://developer.apple.com/documentation/corenfc/building_an_nfc_tag-reader_app

Or just remove .iso18092 from polling options and it will work. I think this standard require specific entitlement.