Core NFC

RSS for tag

Detect NFC tags, read messages that contain NDEF data, and save data to writable tags using Core NFC.

Posts under Core NFC tag

80 Posts

Post

Replies

Boosts

Views

Activity

coreNFC customcommand on ISO15693
Hello everyone I need to present a password to a ST25DV ISO15693 device. From the ST microelectronics datasheet I use the command 0xB3 With customcommandwithrequestflag method with the FLAGs High data rate and Address mode. I have trouble to get it working I receive error code 2 each time I sent the password. The password is composed with int8 area passwor + 8 int8 password. I'd like to know how the customcommand 0xB3 works.
1
0
24
3d
Use two NFC entitlement in the same App
Hello, I have developed an iOS application called DinecTag (be.dinec.DinecTag) with a developer account named Dinec International which is registered in Belgium, I received the NFC entitlement valid for Europe and my App is on the App store since some months (the App is used to open doors by presenting the iPhone in front of a special reader) The App is published only on countries inside Europe (it don’t work outside anyway) I would like my App can be used outside Europe, so I need another entitlement called NFC & SE Platform entitlementn to ask for that, I need an account registered in a country covered by that entitlement Dinec is a company that is member of the Lisam group Lisam has an apple developer account registered to USA, called Lisam Systems So I have asked to the owner of that account to add me as a developer in the USA team So when I connect to my developer account, I can switch between Dinec International SA and Lisam Systems on top right of the screen, I am member of the two teams. I would like to avoid if possible to create a second application, can you confirm it is possible in my case ? What are the next steps ? Best regards Jean-Paul Deryck
1
0
56
1w
Why is CoreNFC unavailable from App Extensions (appex)? Any supported workarounds for authenticators?
Hi everyone — I’m developing an iOS passkey/password manager where the private key material must be stored on a physical device (NFC card / USB token). I’m hitting a hard limitation: CoreNFC is not available for use from app extensions, which prevents an appex (e.g. password/credential provider or other extension) from talking directly to an NFC card during an authentication flow.  My questions: 1. Is there any plan to make CoreNFC (or some limited NFC-API) available to app extensions in a future iOS version? If not, could Apple clarify why (security/entitlements/architecture reasons)? 2. Are there any recommended/approved workarounds for a passkey manager extension that needs to access a physical NFC token during authentication? (For example: background tag reading that launches the containing app, or some entitlement for secure NFC card sessions.) I’ve read about background tag reading, but that seems to be about system/OS handling of tags rather than giving extensions direct NFC access.  3. Is the only supported pattern for my use case to have the containing app perform NFC operations and then share secrets with the extension via App Groups / Keychain Sharing / custom URL flow? (I’m already evaluating App Groups / Keychain access groups for secure sharing, but I’d like official guidance.)  Implementation details that may help responders: • Target: iOS (latest SDK), building a Credential Provider / password manager extension (appex). • Intended physical token: NFC smartcard / ISO7816 contactless (so CoreNFC APIs like NFCISO7816Tag would be ideal). • Security goals: private key never leaves the physical token; extension should be able to trigger/sign during a browser/app AutoFill flow. Possible alternatives I’m considering (open to feedback): designing the UX so that the extension opens the main app (only possible for Today widget in a supported way) which runs the NFC flow and stores/returns a short-lived assertion to the extension. Are any of these patterns sanctioned / recommended by Apple for credential providers?  Thanks — any pointers to docs, entitlement names, or example apps/samples would be extremely helpful.
1
0
59
1w
NFC ISO7816 for ePassport
Hi, I just having an issue with ePassport NFC. When development all requirement setup already included. After build success when trying to scan the passport, it froze there. Nothing happen , look like it not detecting the passport. I check my device and passport no issue. So can help me since its urgent part of the development. It has been blocker since day 1 of the development
1
0
62
1w
EMV Card Data
Hello I am developing an iOS app and would like to read an EMV card that is issued by me and want my customers to tap to activate simply to validate the possession of the card at the time of activation. Any suggestions welcome on how can i achieve this using either NFC Framework or secure elements
2
0
1k
2w
Regression: Associated domain on NFC tag or through control does not open app
Foreword: I filed a feedback a week ago and so far no one replied or at least acknowledged my feedback. That's why I'm writing here now to get some more attention (hopefully, thanks). I recorded a video to show you what exactly is happening. I am not sure where the issue belongs to exactly but it is related to associated domains, the camera (QR codes), the NFC module, App Intents and Control Center controls. https://youtu.be/sT2bZLs_6rA FB20418059 (I added some tags that are somehow related to the associated domain issue)
1
0
195
3w
How to handle CoreNFC session timeout when APDU exchange exceeds 20 seconds?
I’m developing an iOS application using CoreNFC and working with ISO7816 tags. My use case involves exchanging APDU commands with a hardware device, but some operations can take more than 20 seconds. From my testing, I see that: The NFC reader session itself lasts about 60 seconds. But once a tag is connected, the connection seems to drop after ~20 seconds, and I receive a “connection lost” / session invalidated error. My questions are: Is this ~20-second connection window a hard limit enforced by iOS? Is there any way to extend this timeout for long-running APDU operations? If not, what’s the recommended design pattern for handling these scenarios? For example, should I split the process into smaller APDU commands and prompt the user to re-tap when the session times out? Any guidance or best practices for handling long NFC exchanges on iOS would be greatly appreciated.
1
0
78
Oct ’25
CardSession.Error.maxSessionDurationReached not thrown on iOS 26
Hello, I have an app that emulates an NFC card using NFC HCE. Since yesterday I saw an increasing number of crashes on iOS 26 only, which wasn't there before. From what I can see, it seems the app crashes when the NFC presentment intent is shown and 60 seconds passed and user does nothing. The app just crashes after 60 seconds. On previous iOS versions, I know that CardSession.Error.maxSessionDurationReached was thrown after 60 seconds. Is something changed in iOS 26?
4
0
147
Sep ’25
NFC reader is not working in iOS 26
I developed an app that uses the Core NFC framework to read tags. The feature works correctly on iOS 18 and earlier versions, but after upgrading to iOS 26, it stopped working. Details: Entitlement Near Field Communication Tag Reader Session Formats D2760000850101 D2760000850101 Info.Plist com.apple.developer.nfc.readersession.iso7816.select-identifiers D2760000850101 com.apple.developer.nfc.readersession.felica.systemcodes 12FC Privacy - NFC Scan Usage Description Signing and Capabilities: Near Field Communicating Tag Reading [Eanbled] My Sample Code Is: class NFCManager: NSObject, NFCTagReaderSessionDelegate { private var nfcSession: NFCTagReaderSession? let isConnectionNeeded = false func startNFCSession() { guard NFCTagReaderSession.readingAvailable else { // NFC is not available on this device. return } nfcSession = NFCTagReaderSession(pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self) nfcSession?.begin() } func stopNFCSession() { nfcSession?.invalidate() } // MARK: - NFCTagReaderSessionDelegate Methods func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { print("tagReaderSessionDidBecomeActive") } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("didInvalidateWithError --\(error)") } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { print("didDetect: Tag Detected --\(tags)") } } The above code works fine on iOS 18 and earlier versions for detecting tags. Please let me know if I’m missing anything. Please help me to resolve the issue in iOS 26
1
0
254
Sep ’25
Is there a way to disable NFC on iPhones?
I have some logic which requires NFC support on the device. This is what I'm using to make sure that it's available: isNFCMissing = !NFCNDEFReaderSession.readingAvailable && !NFCTagReaderSession.readingAvailable && !NFCVASReaderSession.readingAvailable Is it possible for isNFCMissing to be true even if the device has an NFC chip. The minimum iOS version for the application is 16 which is only supported on devices with an NFC chip to begin with.
2
0
182
Sep ’25
Regression: CoreNFC crash happening through sole presence of a method
I sent this feedback some time ago and still haven't received an answer. Can someone poke someone internally please? Thank you! FB18815675 I have no idea what exactly is going on but after 5 days I found the culprit and I have a reproducible sample project. In the project is a package that does some basic NFC NDEF encoding. I put a commented out method in there and when you comment that in then the app starts crashing at runtime when scanning an NFC tag. Please check out the project and see yourself. Thanks https://github.com/NickAtGit/iOS26-CoreNFC-Crash
3
0
249
Sep ’25
Missing received Events in Apple Card Session – APDU Communication Issue
Hello, I’m a developer at an IT service provider in the banking sector. In the context of an HCE-based payment solution on iOS, we use the Apple Card Session API to receive and process APDU commands. We are currently facing an issue with a specific payment terminal model (CCV): When using this terminal, the Apple Card Session correctly triggers the readerDetected and readerDeselected events, but does not fire the expected received event, even though APDU commands are clearly being sent at the protocol level. This behavior only occurs with this particular CCV terminal in our implementation – with other terminals and on Android devices, the received event is triggered reliably. The same CCV terminal also works without issues when using Apple Pay or PayPal (which also uses HCE → Card Session), and APDU data is transmitted as expected in those cases. Interestingly, in our implementation, roughly every 10th to 20th transaction with this CCV terminal does trigger the received event and APDU commands are delivered — in those rare cases, the payment proceeds successfully. In the system logs, we sometimes see APDU commands marked as invalid, but this also happens in cases where communication works fine, so we’re not sure whether this is actually related to the missing events. Our questions: Has anyone encountered this behavior before – specifically missing received events despite active communication from the terminal? Are there known limitations or specific requirements for payment terminals so that APDU commands are passed through to the Apple Card Session? Are there any diagnostic tools or logs we could use to better narrow down the root cause? At this point, we are unsure whether the issue lies in terminal compatibility, the Apple Card Session itself, or our implementation. Any insights, experiences, or technical hints would be greatly appreciated. Thanks in advance for your help!
1
2
116
Sep ’25
NFC Missing required entitlement
Hi, I have created an application for NFC tag scanning and read the tag data. For that, i enabled the capability: NearField Communication Tag reading. Then I added 2 tag formats in the entitlement then i added info.plist: NFCReaderUsageDescription We need to use NFC com.apple.developer.nfc.readersession.felica.systemcodes 8005 8008 0003 fe00 90b7 927a 12FC 86a7 com.apple.developer.nfc.readersession.iso7816.select-identifiers D2760000850100 D2760000850101 but even though when i run the app and tap the nfc card im getting some error: NFCTag didBecomeActive 2025-08-29 19:08:12.272278+0530 SAFRAN_NFC[894:113090] NFCTag didDetectTags 2025-08-29 19:08:12.282869+0530 SAFRAN_NFC[894:113520] [CoreNFC] -[NFCTagReaderSession _connectTag:error:]:730 Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement} 2025-08-29 19:08:12.284044+0530 SAFRAN_NFC[894:113090] NFCTag restarting polling 2025-08-29 19:08:12.372116+0530 SAFRAN_NFC[894:113090] NFCTag didDetectTags 2025-08-29 19:08:12.381535+0530 SAFRAN_NFC[894:113378] [CoreNFC] -[NFCTagReaderSession _connectTag:error:]:730 Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement} 2025-08-29 19:08:12.382246+0530 SAFRAN_NFC[894:113090] NFCTag restarting polling 2025-08-29 19:08:12.470667+0530 SAFRAN_NFC[894:113090] NFCTag didDetectTags 2025-08-29 19:08:12.479336+0530 SAFRAN_NFC[894:113378] [CoreNFC] -[NFCTagReaderSession _connectTag:error:]:730 Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement} 2025-08-29 19:08:12.480101+0530 SAFRAN_NFC[894:113090] NFCTag restarting polling Could you please help me wha tis the issue and give solution for that?
1
0
150
Aug ’25
Go to Settings” button in Core NFC system alert does not navigate on iOS 26 beta
Description: While testing Core NFC functionality on iOS 26 beta, when the NFC switch is turned off, the system automatically displays an alert. The alert contains two buttons: “Cancel” and “Settings”. Expected Behavior: When the user taps the “Settings” button, the system should navigate to the system settings page where the NFC switch can be turned on. Actual Behavior: The alert appears as expected Tapping the “Settings” button does not navigate to the system settings page No callback is triggered in the app’s NFC session Steps to Reproduce: Turn off the NFC switch on an iOS 26 beta device Trigger Core NFC functionality (e.g., NFCNDEFReaderSession or NFCTagReaderSession) The system alert appears indicating NFC is turned off Tap the “Settings” button Impact: Users cannot directly navigate to enable NFC from the system alert, making NFC features in the app unusable and negatively affecting user experience. Device Information: iOS Version: iOS 26 beta Device Model: iPhone 14pro App uses Core NFC APIs to trigger NFC sessions
2
0
89
Aug ’25
Nfc session
I notice that there are two types of nfc session: "NFCTagReaderSession" this session in order to get tag's basic info like uid/type which call back function is tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) "NFCNDEFReaderSession" this session in order to get ndef message in tag which call back function is readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) My problem: How can i get tag's basic info and tag's ndef message(if it exists) simultaneously in one session or in one callback function.
1
0
114
Aug ’25
iOS 26 beta - NFCPaymentTagReaderSession usage
Hi - from the NFCPaymentTagReaderSession documentation on https://developer.apple.com/documentation/corenfc/nfcpaymenttagreadersession , it's not clear how it should be used to communicate with a payment tag, since the initial SELECT command is handled by NFCPaymentTagReaderSession automatically. Generally in a payment context, the SELECT response from the payment tag would contain necessary data for subsequent exchanges. Could you please help me understand how to receive the SELECT response from NFCPaymentTagReaderSession? Thank you for your help.
2
0
142
Aug ’25
NFCPresentmentIntentAssertion validity behavior
Hello, I would like to discuss the behavior of the expiration of NFCPresentmentIntentAssertion (test in iOS 18.5). In the documentation we have : The intent assertion expires if any of the following occur: The intent assertion object deinitializes Your app goes into the background 15 seconds elapse BUT; in fact ; only the 1st rule is applied. The expiration seems to be random after the usage of CardSession and that's difficult to give to the user a good experience. Has someone faced the same kind of issue; or can give an explanation? Regards, François
2
0
100
Aug ’25
Selecting a Default Contactless App Is Broken in iOS 18
My iOS application has both the “Default Host Card Emulation (HCE) App” and “Host Card Emulation (HCE)” entitlements. I was previously able to choose my app as the default contactless app in Settings, but after upgrading to iOS 18.6, my app no longer appears - Apple Wallet is now the only option. I’m located in the European Economic Area, and both my Apple ID and developer team are registered in the EU. Here is my entitlements file: <?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.nfc.hce</key> <true/> <key>com.apple.developer.nfc.hce.default-contactless-app</key> <true/> <key>com.apple.developer.nfc.hce.iso7816.select-identifier-prefixes</key> <array> <string>A000000004</string> <string>325041592E5359532E4444463031</string> <string>A000000003</string> </array> </dict> </plist>
2
0
79
Aug ’25
Inability to Communicate via APDU on iOS Despite NFC Tag Detection
Background: We are developing a cross-platform mobile application that communicates with a custom NFC-enabled hardware device. The hardware expects ISO7816-style APDU commands for data exchange and functions correctly with Android using the IsoDep protocol. Observed Issue on iOS: On iOS, the tag is only detectable via NFCNdefReaderSession, which provides access to INFCNdefTag. Attempting to use NFCTagReaderSession with NFCPollingOption.Iso14443 (which is required for APDU communication) results in no tag detection. As a result, the tag is inaccessible for APDU-based communication on iOS. Since NFCNdefReaderSession does not support APDU, we are unable to establish the required command channel. Constraints: The hardware firmware cannot be changed to support NDEF-based command interpretation. The device expects raw ISO-DEP APDU commands (i.e., Class-Instruction-Param1-Param2-Data-Le). Impact: The lack of ISO7816 tag detection on iOS prevents the app from sending APDU commands, resulting in a platform-specific feature limitation. Functionality that relies on secure, structured APDU communication is unavailable to iOS users, even though it works seamlessly on Android.
6
0
108
Jul ’25
Provisioning profile doesn't support the Tap to Pay on iPhone capability.
Tap to Pay capabilities are enable and I can use in development profile but I cannot make build that I can upload on TestFlight using the distribution profile because during create build I am getting "Provisioning profile doesn't support the Tap to Pay on iPhone capability." this should be working because I checked twice that distribution profile and certificate have this capability and added in Xcode. how can I resolve this mismatched profile issue I am using Xcode - 15.0.1
3
0
2.3k
Jul ’25