I am working on a simple app that communicates using APDUs as Apple opened up NFC and HCE Entitlement for the EU market. I got the entitlement for my developer account, I have the entitlements available in the NDEF
and TAG
values and also added proper AID
value. Also added SKExternalPurchase
and SKExternalPurchaseLink
keys to the Info.plist
. When I check the CardSession.isSupported
and NFCReaderSession.readingAvailable
they come out to be true.
But when checking the CardSession.isEligible
it's value is false
. When checking the documentation for it, it simply says that
A property that indicates whether the current device supports card session functionality.
How can check the issue with current system?
To be able to execute CardSession
APIs for HCE-based contactless transactions, the device needs to satisfy the following requirements:
- Your iPhone is running iOS 17.4 or later
- You’ve signed in with an Apple ID based in an EEA country or region
- The iPhone executing the CardSession code is within EEA
Note that the device needs to be physically within the EEA. Using a VPN or other location spoofing techniques will not work. This is a hard requirement, and there are no workarounds or any additional special permissions to activate CardSession usage outside the EEA.
Full details about these requirements can be found at HCE-based contactless transactions for apps in the European Economic Area (EEA)
Argun Tekant / DTS Engineer / Core Technologies