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

63 Posts

Post

Replies

Boosts

Views

Activity

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
133
Oct ’25
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
240
Oct ’25
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
160
Oct ’25
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
83
Oct ’25
CoreNFC: NFCTagReaderSession fails with “Session invalidated unexpectedly” (after enabling NFC Scan, paid team, and custom dev profile)
Device: iPhone [model], iOS 18.6.2 Xcode: 16.0.x Team: Individual paid Apple Developer Program (not Personal Team), shows as my full name in Xcode I’m trying to use CoreNFC via NFCTagReaderSession in a small SwiftUI app (part of a larger project). So far I’ve done: • Enrolled in the Apple Developer Program (individual). • Confirmed that in Certificates, Identifiers & Profiles → Identifiers, my App ID for com.<…> has Near Field Communication Tag Reading enabled. • Created an iOS App Development provisioning profile for that App ID, including: • my Apple Development certificate • my iPhone device • Downloaded the profile, double-clicked it, and set it in Xcode under Signing & Capabilities with: • Team = my full-name team • “Automatically manage signing” off, using the custom profile. • Added the NFC Scan capability in Signing & Capabilities. • Added Privacy - NFC Scan Usage Description (NFCReaderUsageDescription) in Info.plist with a non-empty string. The app builds and runs on device. When I start the session: func beginScanning() { print("NFCTagReaderSession.readingAvailable =", NFCTagReaderSession.readingAvailable) session = NFCTagReaderSession(pollingOption: [.iso14443, .iso15693], delegate: self, queue: nil) session?.alertMessage = "Hold your iPhone near your Ori tag." session?.begin() } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("NFC session invalidated:", error.localizedDescription) } readingAvailable is false, and I immediately see: NFC session invalidated: Session invalidated unexpectedly Earlier in this process I was seeing XPC sandbox messages like: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated: failed at lookup with error 159 - Sandbox restriction." Those went away after I created the explicit iOS App Development profile and pointed the target at it, but the session still invalidates right away and readingAvailable never becomes true. Safari can read NDEF URL tags on this device, so the NFC hardware is working. Question: Is there anything else required on the App ID / provisioning / team side to enable CoreNFC with NFCTagReaderSession for an individual (non-enterprise) developer account? Or any known issues where readingAvailable stays false even with NFC Tag Reading enabled and a custom iOS App Development profile? Any hints on what I might still be missing would be greatly appreciated.
1
0
328
Nov ’25
Confirm whether the distribution of this app violates the terms of service
This app was developed with NFC functionality enabled, and distribution was intended to utilize the iOS app by replacing the provisioning profile and certificate issued under a separate Apple Developer account. However, since NFC cannot be enabled under the separate Apple Developer account, it is now required that the iOS app can be used with the standalone ipa file. If we create our own provisioning profile and certificate to enable standalone operation of the ipa file, we need to confirm where this might conflict with Apple's licenses or policies.
2
0
107
Nov ’25
P2P NFC BTC
Trying to figure out how to send btc, eth, etc, phone to phone. Square app allows for the phone to turn into a payment terminal for fiat currencies and payment systems. the data encryption logic and sending p2p is similar but can that functionality be enabled for alternative purposes i.e. sending crypto phone to phone (designated wallet on one phone to designated wallet on another)?
3
0
378
Jan ’26
How to implement NFC Reader in SwiftUI?
Hi, does anyone know how to enable creating or configuring Near NFC Reader in SwiftUI? I've already added the capability, the permissions in info.plist, the entitlement, and the SwiftUI code, but without success. Here's the example code: class PaymentT2PViewModel: NSObject, ObservableObject { @Published var paymentT2PUIState: PaymentT2PUIState // MARK: - NFC Properties @Published var nfcMessage: String = .empty @Published var isNFCReading: Bool = false private var nfcSession: NFCTagReaderSession? init(paymentT2PUIState: PaymentT2PUIState) { self.paymentT2PUIState = paymentT2PUIState super.init() ) } func startNFCReading() { print("INICIO: startNFCReading llamado") guard NFCTagReaderSession.readingAvailable else { print("ERROR: NFC NO disponible en este dispositivo") Task { @MainActor in self.nfcMessage = "NFC no disponible en este dispositivo" } return } print("NFC disponible, creando sesión...") nfcSession = NFCTagReaderSession( pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self, queue: nil ) print("Sesión creada, configurando mensaje...") nfcSession?.alertMessage = "Acerca la tarjeta al iPhone" nfcSession?.begin() print("Sesión NFC INICIADA - debería aparecer popup") Task { @MainActor in self.isNFCReading = true } } func stopNFCReading() { nfcSession?.invalidate() Task { @MainActor in self.isNFCReading = false } } extension PaymentT2PViewModel: NFCTagReaderSessionDelegate { func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("SESIÓN INVALIDADA") print("Error: (error.localizedDescription)") if let readerError = error as? NFCReaderError { print("Código de error: \(readerError.code.rawValue)") print("¿Es cancelación del usuario?: \(readerError.code == .readerSessionInvalidationErrorUserCanceled)") } Task { @MainActor in if let readerError = error as? NFCReaderError { if readerError.code != .readerSessionInvalidationErrorUserCanceled { self.nfcMessage = "Error: \(readerError.localizedDescription)" } } self.isNFCReading = false } } func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { print("NFC Session activa") } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { guard let firstTag = tags.first else { return } session.connect(to: firstTag) { [weak self] error in if let error = error { session.invalidate(errorMessage: "Error al conectar: \(error.localizedDescription)") return } Task { @MainActor [weak self] in await self?.handleTag(firstTag, session: session) } } } private func handleTag(_ tag: NFCTag, session: NFCTagReaderSession) async { switch tag { case .iso7816(let tag): await handleISO7816Tag(tag, session: session) case .miFare(let tag): await handleMiFareTag(tag, session: session) case .iso15693(let tag): await handleISO15693Tag(tag, session: session) case .feliCa(let tag): await handleFeliCaTag(tag, session: session) @unknown default: session.invalidate(errorMessage: "Tipo de tag no soportado") } } private func handleISO7816Tag(_ tag: NFCISO7816Tag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ ISO7816 Tag detectado UID: \(uid) Historical Bytes: \(tag.historicalBytes?.map { String(format: "%02X", $0) }.joined() ?? "N/A") """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleMiFareTag(_ tag: NFCMiFareTag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ MiFare Tag detectado UID: \(uid) Tipo: \(tag.mifareFamily.description) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleISO15693Tag(_ tag: NFCISO15693Tag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ ISO15693 Tag detectado UID: \(uid) IC Manufacturer: \(tag.icManufacturerCode) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleFeliCaTag(_ tag: NFCFeliCaTag, session: NFCTagReaderSession) async { let idm = tag.currentIDm.map { String(format: "%02X", $0) }.joined() let pmm = tag.currentSystemCode.map { String(format: "%02X", $0) }.joined() nfcMessage = """ FeliCa Tag detectado IDm: \(idm) System Code: \(pmm) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } } // MARK: - Helper Extension extension NFCMiFareFamily { var description: String { switch self { case .unknown: return "Desconocido" case .ultralight: return "Ultralight" case .plus: return "Plus" case .desfire: return "DESFire" @unknown default: return "Otro" } } } struct PaymentT2PView: View { @ObservedObject var paymentT2PViewModel: PaymentT2PViewModel var body: some View { ZStack { if paymentT2PViewModel.paymentT2PUIState.showingResult { print("Navigate") } else { print("False") } } .onAppear { paymentT2PViewModel.startNFCReading() } .onDisappear { paymentT2PViewModel.stopNFCReading() } }} However, I'm getting code error messages, and I'm testing this on an iPhone 11. What am I doing wrong?
0
0
316
Nov ’25
Read ppse and card info
i'm trying to understand which entitlements i need to ask for in order to be able to read the credit card via NFC. I work for the bank and i'd like the read our card in order to verify there are the bank's credit card. The goal is to be able to use the card as a physical token to verify the user identity. on android we manage to do this without limitation if (await NfcManager.isSupported()) { await NfcManager.requestTechnology(NfcTech.IsoDep) const tag = await NfcManager.getTag() if (tag) toast.success("NFC Tag read successfully", { cancel: undefined, description: tag.id, id }) else toast.error("No NFC Tag found", { cancel: undefined, id }) const ppse = await NfcManager.isoDepHandler.transceive([ 0x00, 0xa4, 0x04, 0x00, 0x0e, 0x32, 0x50, 0x41, 0x59, 0x2e, 0x53, 0x59, 0x53, 0x2e, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00, ]) logger.info("PPSE", ppse.map((c) => fromBase10ToHex(c, 2)).join(" ")) const select = await NfcManager.isoDepHandler.transceive([ 0x00, 0xa4, 0x04, 0x00, 0x07, 0xa0, 0x00, 0x00, 0x00, 0x04, 0x10, 0x10, 0x00, ]) logger.info("Select AID", select.map((c) => fromBase10ToHex(c, 2)).join(" ")) const gpo = await NfcManager.isoDepHandler.transceive([0x80, 0xa8, 0x00, 0x00, 0x02, 0x83, 0x00, 0x00]) logger.info("GPO", gpo.map((c) => fromBase10ToHex(c, 2)).join(" ")) const record = await NfcManager.isoDepHandler.transceive([0x00, 0xb2, 0x01, 0x14, 0x00]) logger.info("record: ", record.map((c) => fromBase10ToHex(c, 2)).join(" ")) logger.info("PAN", findTag(record, [0x5a])) logger.info("expiry", findTag(record, [0x5f, 0x24])?.reverse()) } but on ios we have restricted access and the ppse doesn't work but i can't find which entitlement i need to ask for, since HCE is to make the iphone into a nfc tag himself and the tap to pay is to pay with the iphone, both of those doesn't match my needs and i wouldn't be able to valid the requirement to get them into production. So i am wondering which entitlement i needs to ask for in order to be able to scan the card inside the bank app. We only care about our card
1
0
223
Nov ’25
CoreNFC / NFCTagReaderSession Availability on iPad
Hello, I am currently working on a project that requires the use of the NFCTagReaderSession API to perform read and write operations on NFC tags (ISO15693 and other standard NFC tag types). According to the Apple documentation, CoreNFC and NFCTagReaderSession are fully supported on iPhone devices. However, the behavior and availability on iPad devices are not clearly documented. I would like to request clarification on the following points: Is NFCTagReaderSession officially supported on iPad devices? We have verified that some iPad models equipped with NFC hardware still do not expose support for this API. Is there an up-to-date list of iPad models that support CoreNFC? The documentation currently mentions only “iPhone 7 or later,” with no reference to iPad models. Does Apple plan to enable NFCTagReaderSession on iPad in the future? This information is important for our product roadmap, as several of our deployments rely on tablets. Our goal is to determine whether NFC tag read/write operations are intended to be available exclusively on iPhone, or whether there are existing or upcoming iPad models that will support CoreNFC as well. Thank you in advance for your support and for any clarification you can provide. Kind regards,
1
0
212
Nov ’25
Disable ISO15693Tag Popup
Dear Apple CS, I’m working with NFC ISO15693 tags using NFCTagReaderSession / NFCISO15693Tag, and I’d like to read these tags in the background if possible. Is there any way to read this tag type without triggering the system NFC popup that iOS normally shows? Please note it will not be a public app, the app is meant for internal use for our employees only. is there an option to submit a special request for this use case? Thank you in advance!
2
0
257
Dec ’25
RFID read
Hi! Following this ticket: https://developer.apple.com/forums/thread/808764?page=1#868010022 Is there any way to use the hardware RFID reading capabilities of an iPhone to read ISO15693 RF tags silently, and without a UI pop-up? Perhaps using other native iOS libraries than the NFC library? If not, is there a way for a business to request this feature be allowed in internally used apps only?
3
0
400
Jan ’26
NFC Bottomsheet customization
Hi all, I wanted to check whether the NFC bottom-sheet UI shown by iOS during an NFC reading session can be customized. We have a Figma design (attached) for how the sheet should look, but we are not sure whether iOS allows modifying the default NFC UI. Is UI customization supported, or is the bottom sheet fully controlled by the system? Thanks in advance.
Topic: Design SubTopic: General Tags:
1
0
538
Dec ’25
NFCTagReaderSession fails with "Missing required entitlement" on iOS 26.2 despite correct configuration
Environment: Device: iPhone 15 iOS Version: 26.2 Xcode Version: (add your version) Signing: Automatic with Apple Developer account Problem: When calling NFCTagReaderSession.begin(), the session immediately fails with error code 2: "Missing required entitlement". This happens even though: NFCTagReaderSession.readingAvailable returns true NFCNDEFReaderSession.readingAvailable returns true The session object is created successfully Configuration verified: BonoResidente.entitlements: Info.plist (relevant keys): NFCReaderUsageDescription This app needs NFC permission to read transport cards com.apple.developer.nfc.readersession.iso7816.select-identifiers D2760000850101 Apple Developer Portal: App ID com.acalvoelorri.BonoResidente has "NFC Tag Reading" capability enabled Provisioning profiles were regenerated after enabling the capability Xcode: "Near Field Communication Tag Reading" capability added via Signing & Capabilities CODE_SIGN_ENTITLEMENTS correctly points to the entitlements file Automatic signing enabled with valid Development Team Steps taken: Deleted app from device Clean Build Folder (Cmd+Shift+K) Deleted and re-added the NFC capability in Xcode Manually enabled NFC Tag Reading in Apple Developer Portal Rebuilt and reinstalled the app Code: import CoreNFC class NFCReaderService: NSObject, ObservableObject, NFCTagReaderSessionDelegate { @Published var lastReadData: String = "" @Published var isReading: Bool = false private var session: NFCTagReaderSession? func startReading() { guard NFCTagReaderSession.readingAvailable else { lastReadData = "NFC not available on this device" return } session = NFCTagReaderSession( pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self ) session?.alertMessage = "Hold your transport card near the iPhone" session?.begin() isReading = true } func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { print("NFC session active") } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { // Error occurs here immediately after begin() print("Error: \(error)") } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { // Never reached } } Console logs: ========== NFC DEBUG INFO ========== iOS Version: 26.2 Device Model: iPhone Device Name: iPhone System Name: iOS NFCTagReaderSession.readingAvailable: true NFCNDEFReaderSession.readingAvailable: true Bundle ID: com.acalvoelorri.BonoResidente Creating NFCTagReaderSession with pollingOption: [.iso14443, .iso15693, .iso18092]... Session created: Optional(<NFCTagReaderSession: 0x110fa50e0>) Setting alertMessage... Calling session.begin()... session.begin() completed, isReading = true ========== NFC ERROR DEBUG ========== Full error: Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement} Error type: NFCError Localized: Missing required entitlement NSError domain: NFCError NSError code: 2 NSError userInfo: ["NSLocalizedDescription": Missing required entitlement] Questions: Is there a known issue with NFCTagReaderSession entitlements on iOS 26.2? Are there additional entitlements required beyond com.apple.developer.nfc.readersession.formats with value TAG? How can I verify that the installed app's provisioning profile actually contains the NFC entitlement? Any help would be appreciated. Thank you.
2
0
406
Dec ’25
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!
1
0
155
Jan ’26
Temporarily disable macOS capture of USB RFID reader(s)
Hello. I am attempting to wrap the C library libnfc as a Swift library. This is not for use on macOS - it's mainly for use on Linux (Raspberry Pi). I have a USB reader and my code appears to work so far, however the code/test/debug cycle is suboptimal if I'm running the code on the Pi. As I use a Mac for day-to-day coding, I'd prefer to use Xcode and my Mac for development. MacOS appears to capture the NFC hardware for its own frameworks and attempting to open a connection to the USB device gives a Unable to claim USB interface (Permission denied) error. ioreg shows that the hardware is claimed by an Apple framework: "UsbExclusiveOwner" = "pid 10946, com.apple.ifdbun" Is there a way to temporarily over-ride that system and use the hardware myself? I've tried Googling but most of the replies are out of date and Claude's advice launchctl unload /System/Library/LaunchDaemons/com.apple.ifdreader.plist doesn't appear to work... I'm wary of disabling SIP - is there a simple way to have access to the hardware myself? Thanks.
2
0
264
Jan ’26
NFC Secure Element / ISO7816 Entitlement Availability by Region (Indonesia)
Hello, I would like to seek clarification regarding the availability of the NFC Secure Element (SE) / ISO7816 entitlement by region, specifically for Indonesia. I recently contacted Apple Developer Support regarding the use of NFC for reading ISO7816-compatible cards. I was informed that, at this time, the NFC & Secure Element entitlement is not available in Indonesia. For technical planning and compliance purposes, I would like to confirm the following: Is the NFC Secure Element / ISO7816 entitlement currently restricted by region, and is Indonesia officially unsupported at this time? For apps distributed on the App Store in Indonesia, is Core NFC limited to NDEF and non–Secure Element tag reading only? Are there any publicly supported alternatives or recommended architectural approaches for NFC-based workflows in regions where the Secure Element entitlement is unavailable? Is there any public documentation or guidance that outlines regional availability for NFC Secure Element features? I understand that entitlement approvals and availability may vary by region and are handled on a case-by-case basis. Any clarification from Apple engineers or developers with experience in this area would be greatly appreciated. Thank you for your time and assistance. Best regards.
1
0
354
Jan ’26
Can I hide the NFC App Clip card?
Dear Apple Engineers: My app utilizes the App Clip experience. I would like to prevent the App Clip card from appearing when the host app is running in the foreground. How can this be achieved? I have observed that Alipay (in China) does not display an App Clip card when the device is tapped against a tag while the app is in the foreground, which indicates that this behavior is possible. Thank you for your assistance.
0
1
77
Jan ’26
How to hide the NFC reading pop-up prompt?
Dear Apple Engineers, I am using NFCNDEFReaderSession to read information from NFC tags. When calling the begin method of the session, a system dialog/popover appears at the bottom of the screen. Is it possible to suppress or disable this dialog? Thank you for your assistance. Here is my demo code: @IBAction func beginScanning(_ sender: Any) { guard NFCNDEFReaderSession.readingAvailable else { let alertController = UIAlertController( title: "Scanning Not Supported", message: "This device doesn't support tag scanning.", preferredStyle: .alert ) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) self.present(alertController, animated: true, completion: nil) return } session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true) session?.alertMessage = "Hold your iPhone near the item to learn more about it. session?.begin() }
1
0
126
Jan ’26
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
Replies
1
Boosts
0
Views
133
Activity
Oct ’25
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.
Replies
1
Boosts
0
Views
240
Activity
Oct ’25
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
Replies
1
Boosts
0
Views
160
Activity
Oct ’25
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.
Replies
1
Boosts
0
Views
83
Activity
Oct ’25
iOS26 iOS26 NFCTagReaderSession cannot read NFCTagTypeISO7816Compatible
iPhone12 , iOS26 NFCTagReaderSession cannot read NFCTagTypeISO7816Compatible anymore
Replies
0
Boosts
0
Views
173
Activity
Nov ’25
CoreNFC: NFCTagReaderSession fails with “Session invalidated unexpectedly” (after enabling NFC Scan, paid team, and custom dev profile)
Device: iPhone [model], iOS 18.6.2 Xcode: 16.0.x Team: Individual paid Apple Developer Program (not Personal Team), shows as my full name in Xcode I’m trying to use CoreNFC via NFCTagReaderSession in a small SwiftUI app (part of a larger project). So far I’ve done: • Enrolled in the Apple Developer Program (individual). • Confirmed that in Certificates, Identifiers & Profiles → Identifiers, my App ID for com.<…> has Near Field Communication Tag Reading enabled. • Created an iOS App Development provisioning profile for that App ID, including: • my Apple Development certificate • my iPhone device • Downloaded the profile, double-clicked it, and set it in Xcode under Signing & Capabilities with: • Team = my full-name team • “Automatically manage signing” off, using the custom profile. • Added the NFC Scan capability in Signing & Capabilities. • Added Privacy - NFC Scan Usage Description (NFCReaderUsageDescription) in Info.plist with a non-empty string. The app builds and runs on device. When I start the session: func beginScanning() { print("NFCTagReaderSession.readingAvailable =", NFCTagReaderSession.readingAvailable) session = NFCTagReaderSession(pollingOption: [.iso14443, .iso15693], delegate: self, queue: nil) session?.alertMessage = "Hold your iPhone near your Ori tag." session?.begin() } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("NFC session invalidated:", error.localizedDescription) } readingAvailable is false, and I immediately see: NFC session invalidated: Session invalidated unexpectedly Earlier in this process I was seeing XPC sandbox messages like: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated: failed at lookup with error 159 - Sandbox restriction." Those went away after I created the explicit iOS App Development profile and pointed the target at it, but the session still invalidates right away and readingAvailable never becomes true. Safari can read NDEF URL tags on this device, so the NFC hardware is working. Question: Is there anything else required on the App ID / provisioning / team side to enable CoreNFC with NFCTagReaderSession for an individual (non-enterprise) developer account? Or any known issues where readingAvailable stays false even with NFC Tag Reading enabled and a custom iOS App Development profile? Any hints on what I might still be missing would be greatly appreciated.
Replies
1
Boosts
0
Views
328
Activity
Nov ’25
Confirm whether the distribution of this app violates the terms of service
This app was developed with NFC functionality enabled, and distribution was intended to utilize the iOS app by replacing the provisioning profile and certificate issued under a separate Apple Developer account. However, since NFC cannot be enabled under the separate Apple Developer account, it is now required that the iOS app can be used with the standalone ipa file. If we create our own provisioning profile and certificate to enable standalone operation of the ipa file, we need to confirm where this might conflict with Apple's licenses or policies.
Replies
2
Boosts
0
Views
107
Activity
Nov ’25
P2P NFC BTC
Trying to figure out how to send btc, eth, etc, phone to phone. Square app allows for the phone to turn into a payment terminal for fiat currencies and payment systems. the data encryption logic and sending p2p is similar but can that functionality be enabled for alternative purposes i.e. sending crypto phone to phone (designated wallet on one phone to designated wallet on another)?
Replies
3
Boosts
0
Views
378
Activity
Jan ’26
How to implement NFC Reader in SwiftUI?
Hi, does anyone know how to enable creating or configuring Near NFC Reader in SwiftUI? I've already added the capability, the permissions in info.plist, the entitlement, and the SwiftUI code, but without success. Here's the example code: class PaymentT2PViewModel: NSObject, ObservableObject { @Published var paymentT2PUIState: PaymentT2PUIState // MARK: - NFC Properties @Published var nfcMessage: String = .empty @Published var isNFCReading: Bool = false private var nfcSession: NFCTagReaderSession? init(paymentT2PUIState: PaymentT2PUIState) { self.paymentT2PUIState = paymentT2PUIState super.init() ) } func startNFCReading() { print("INICIO: startNFCReading llamado") guard NFCTagReaderSession.readingAvailable else { print("ERROR: NFC NO disponible en este dispositivo") Task { @MainActor in self.nfcMessage = "NFC no disponible en este dispositivo" } return } print("NFC disponible, creando sesión...") nfcSession = NFCTagReaderSession( pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self, queue: nil ) print("Sesión creada, configurando mensaje...") nfcSession?.alertMessage = "Acerca la tarjeta al iPhone" nfcSession?.begin() print("Sesión NFC INICIADA - debería aparecer popup") Task { @MainActor in self.isNFCReading = true } } func stopNFCReading() { nfcSession?.invalidate() Task { @MainActor in self.isNFCReading = false } } extension PaymentT2PViewModel: NFCTagReaderSessionDelegate { func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { print("SESIÓN INVALIDADA") print("Error: (error.localizedDescription)") if let readerError = error as? NFCReaderError { print("Código de error: \(readerError.code.rawValue)") print("¿Es cancelación del usuario?: \(readerError.code == .readerSessionInvalidationErrorUserCanceled)") } Task { @MainActor in if let readerError = error as? NFCReaderError { if readerError.code != .readerSessionInvalidationErrorUserCanceled { self.nfcMessage = "Error: \(readerError.localizedDescription)" } } self.isNFCReading = false } } func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { print("NFC Session activa") } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { guard let firstTag = tags.first else { return } session.connect(to: firstTag) { [weak self] error in if let error = error { session.invalidate(errorMessage: "Error al conectar: \(error.localizedDescription)") return } Task { @MainActor [weak self] in await self?.handleTag(firstTag, session: session) } } } private func handleTag(_ tag: NFCTag, session: NFCTagReaderSession) async { switch tag { case .iso7816(let tag): await handleISO7816Tag(tag, session: session) case .miFare(let tag): await handleMiFareTag(tag, session: session) case .iso15693(let tag): await handleISO15693Tag(tag, session: session) case .feliCa(let tag): await handleFeliCaTag(tag, session: session) @unknown default: session.invalidate(errorMessage: "Tipo de tag no soportado") } } private func handleISO7816Tag(_ tag: NFCISO7816Tag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ ISO7816 Tag detectado UID: \(uid) Historical Bytes: \(tag.historicalBytes?.map { String(format: "%02X", $0) }.joined() ?? "N/A") """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleMiFareTag(_ tag: NFCMiFareTag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ MiFare Tag detectado UID: \(uid) Tipo: \(tag.mifareFamily.description) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleISO15693Tag(_ tag: NFCISO15693Tag, session: NFCTagReaderSession) async { let uid = tag.identifier.map { String(format: "%02X", $0) }.joined() nfcMessage = """ ISO15693 Tag detectado UID: \(uid) IC Manufacturer: \(tag.icManufacturerCode) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } private func handleFeliCaTag(_ tag: NFCFeliCaTag, session: NFCTagReaderSession) async { let idm = tag.currentIDm.map { String(format: "%02X", $0) }.joined() let pmm = tag.currentSystemCode.map { String(format: "%02X", $0) }.joined() nfcMessage = """ FeliCa Tag detectado IDm: \(idm) System Code: \(pmm) """ session.alertMessage = "Tag leído exitosamente" session.invalidate() } } // MARK: - Helper Extension extension NFCMiFareFamily { var description: String { switch self { case .unknown: return "Desconocido" case .ultralight: return "Ultralight" case .plus: return "Plus" case .desfire: return "DESFire" @unknown default: return "Otro" } } } struct PaymentT2PView: View { @ObservedObject var paymentT2PViewModel: PaymentT2PViewModel var body: some View { ZStack { if paymentT2PViewModel.paymentT2PUIState.showingResult { print("Navigate") } else { print("False") } } .onAppear { paymentT2PViewModel.startNFCReading() } .onDisappear { paymentT2PViewModel.stopNFCReading() } }} However, I'm getting code error messages, and I'm testing this on an iPhone 11. What am I doing wrong?
Replies
0
Boosts
0
Views
316
Activity
Nov ’25
Read ppse and card info
i'm trying to understand which entitlements i need to ask for in order to be able to read the credit card via NFC. I work for the bank and i'd like the read our card in order to verify there are the bank's credit card. The goal is to be able to use the card as a physical token to verify the user identity. on android we manage to do this without limitation if (await NfcManager.isSupported()) { await NfcManager.requestTechnology(NfcTech.IsoDep) const tag = await NfcManager.getTag() if (tag) toast.success("NFC Tag read successfully", { cancel: undefined, description: tag.id, id }) else toast.error("No NFC Tag found", { cancel: undefined, id }) const ppse = await NfcManager.isoDepHandler.transceive([ 0x00, 0xa4, 0x04, 0x00, 0x0e, 0x32, 0x50, 0x41, 0x59, 0x2e, 0x53, 0x59, 0x53, 0x2e, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00, ]) logger.info("PPSE", ppse.map((c) => fromBase10ToHex(c, 2)).join(" ")) const select = await NfcManager.isoDepHandler.transceive([ 0x00, 0xa4, 0x04, 0x00, 0x07, 0xa0, 0x00, 0x00, 0x00, 0x04, 0x10, 0x10, 0x00, ]) logger.info("Select AID", select.map((c) => fromBase10ToHex(c, 2)).join(" ")) const gpo = await NfcManager.isoDepHandler.transceive([0x80, 0xa8, 0x00, 0x00, 0x02, 0x83, 0x00, 0x00]) logger.info("GPO", gpo.map((c) => fromBase10ToHex(c, 2)).join(" ")) const record = await NfcManager.isoDepHandler.transceive([0x00, 0xb2, 0x01, 0x14, 0x00]) logger.info("record: ", record.map((c) => fromBase10ToHex(c, 2)).join(" ")) logger.info("PAN", findTag(record, [0x5a])) logger.info("expiry", findTag(record, [0x5f, 0x24])?.reverse()) } but on ios we have restricted access and the ppse doesn't work but i can't find which entitlement i need to ask for, since HCE is to make the iphone into a nfc tag himself and the tap to pay is to pay with the iphone, both of those doesn't match my needs and i wouldn't be able to valid the requirement to get them into production. So i am wondering which entitlement i needs to ask for in order to be able to scan the card inside the bank app. We only care about our card
Replies
1
Boosts
0
Views
223
Activity
Nov ’25
CoreNFC / NFCTagReaderSession Availability on iPad
Hello, I am currently working on a project that requires the use of the NFCTagReaderSession API to perform read and write operations on NFC tags (ISO15693 and other standard NFC tag types). According to the Apple documentation, CoreNFC and NFCTagReaderSession are fully supported on iPhone devices. However, the behavior and availability on iPad devices are not clearly documented. I would like to request clarification on the following points: Is NFCTagReaderSession officially supported on iPad devices? We have verified that some iPad models equipped with NFC hardware still do not expose support for this API. Is there an up-to-date list of iPad models that support CoreNFC? The documentation currently mentions only “iPhone 7 or later,” with no reference to iPad models. Does Apple plan to enable NFCTagReaderSession on iPad in the future? This information is important for our product roadmap, as several of our deployments rely on tablets. Our goal is to determine whether NFC tag read/write operations are intended to be available exclusively on iPhone, or whether there are existing or upcoming iPad models that will support CoreNFC as well. Thank you in advance for your support and for any clarification you can provide. Kind regards,
Replies
1
Boosts
0
Views
212
Activity
Nov ’25
Disable ISO15693Tag Popup
Dear Apple CS, I’m working with NFC ISO15693 tags using NFCTagReaderSession / NFCISO15693Tag, and I’d like to read these tags in the background if possible. Is there any way to read this tag type without triggering the system NFC popup that iOS normally shows? Please note it will not be a public app, the app is meant for internal use for our employees only. is there an option to submit a special request for this use case? Thank you in advance!
Replies
2
Boosts
0
Views
257
Activity
Dec ’25
RFID read
Hi! Following this ticket: https://developer.apple.com/forums/thread/808764?page=1#868010022 Is there any way to use the hardware RFID reading capabilities of an iPhone to read ISO15693 RF tags silently, and without a UI pop-up? Perhaps using other native iOS libraries than the NFC library? If not, is there a way for a business to request this feature be allowed in internally used apps only?
Replies
3
Boosts
0
Views
400
Activity
Jan ’26
NFC Bottomsheet customization
Hi all, I wanted to check whether the NFC bottom-sheet UI shown by iOS during an NFC reading session can be customized. We have a Figma design (attached) for how the sheet should look, but we are not sure whether iOS allows modifying the default NFC UI. Is UI customization supported, or is the bottom sheet fully controlled by the system? Thanks in advance.
Topic: Design SubTopic: General Tags:
Replies
1
Boosts
0
Views
538
Activity
Dec ’25
NFCTagReaderSession fails with "Missing required entitlement" on iOS 26.2 despite correct configuration
Environment: Device: iPhone 15 iOS Version: 26.2 Xcode Version: (add your version) Signing: Automatic with Apple Developer account Problem: When calling NFCTagReaderSession.begin(), the session immediately fails with error code 2: "Missing required entitlement". This happens even though: NFCTagReaderSession.readingAvailable returns true NFCNDEFReaderSession.readingAvailable returns true The session object is created successfully Configuration verified: BonoResidente.entitlements: Info.plist (relevant keys): NFCReaderUsageDescription This app needs NFC permission to read transport cards com.apple.developer.nfc.readersession.iso7816.select-identifiers D2760000850101 Apple Developer Portal: App ID com.acalvoelorri.BonoResidente has "NFC Tag Reading" capability enabled Provisioning profiles were regenerated after enabling the capability Xcode: "Near Field Communication Tag Reading" capability added via Signing & Capabilities CODE_SIGN_ENTITLEMENTS correctly points to the entitlements file Automatic signing enabled with valid Development Team Steps taken: Deleted app from device Clean Build Folder (Cmd+Shift+K) Deleted and re-added the NFC capability in Xcode Manually enabled NFC Tag Reading in Apple Developer Portal Rebuilt and reinstalled the app Code: import CoreNFC class NFCReaderService: NSObject, ObservableObject, NFCTagReaderSessionDelegate { @Published var lastReadData: String = "" @Published var isReading: Bool = false private var session: NFCTagReaderSession? func startReading() { guard NFCTagReaderSession.readingAvailable else { lastReadData = "NFC not available on this device" return } session = NFCTagReaderSession( pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self ) session?.alertMessage = "Hold your transport card near the iPhone" session?.begin() isReading = true } func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) { print("NFC session active") } func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) { // Error occurs here immediately after begin() print("Error: \(error)") } func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { // Never reached } } Console logs: ========== NFC DEBUG INFO ========== iOS Version: 26.2 Device Model: iPhone Device Name: iPhone System Name: iOS NFCTagReaderSession.readingAvailable: true NFCNDEFReaderSession.readingAvailable: true Bundle ID: com.acalvoelorri.BonoResidente Creating NFCTagReaderSession with pollingOption: [.iso14443, .iso15693, .iso18092]... Session created: Optional(<NFCTagReaderSession: 0x110fa50e0>) Setting alertMessage... Calling session.begin()... session.begin() completed, isReading = true ========== NFC ERROR DEBUG ========== Full error: Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement} Error type: NFCError Localized: Missing required entitlement NSError domain: NFCError NSError code: 2 NSError userInfo: ["NSLocalizedDescription": Missing required entitlement] Questions: Is there a known issue with NFCTagReaderSession entitlements on iOS 26.2? Are there additional entitlements required beyond com.apple.developer.nfc.readersession.formats with value TAG? How can I verify that the installed app's provisioning profile actually contains the NFC entitlement? Any help would be appreciated. Thank you.
Replies
2
Boosts
0
Views
406
Activity
Dec ’25
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!
Replies
1
Boosts
0
Views
155
Activity
Jan ’26
Temporarily disable macOS capture of USB RFID reader(s)
Hello. I am attempting to wrap the C library libnfc as a Swift library. This is not for use on macOS - it's mainly for use on Linux (Raspberry Pi). I have a USB reader and my code appears to work so far, however the code/test/debug cycle is suboptimal if I'm running the code on the Pi. As I use a Mac for day-to-day coding, I'd prefer to use Xcode and my Mac for development. MacOS appears to capture the NFC hardware for its own frameworks and attempting to open a connection to the USB device gives a Unable to claim USB interface (Permission denied) error. ioreg shows that the hardware is claimed by an Apple framework: "UsbExclusiveOwner" = "pid 10946, com.apple.ifdbun" Is there a way to temporarily over-ride that system and use the hardware myself? I've tried Googling but most of the replies are out of date and Claude's advice launchctl unload /System/Library/LaunchDaemons/com.apple.ifdreader.plist doesn't appear to work... I'm wary of disabling SIP - is there a simple way to have access to the hardware myself? Thanks.
Replies
2
Boosts
0
Views
264
Activity
Jan ’26
NFC Secure Element / ISO7816 Entitlement Availability by Region (Indonesia)
Hello, I would like to seek clarification regarding the availability of the NFC Secure Element (SE) / ISO7816 entitlement by region, specifically for Indonesia. I recently contacted Apple Developer Support regarding the use of NFC for reading ISO7816-compatible cards. I was informed that, at this time, the NFC & Secure Element entitlement is not available in Indonesia. For technical planning and compliance purposes, I would like to confirm the following: Is the NFC Secure Element / ISO7816 entitlement currently restricted by region, and is Indonesia officially unsupported at this time? For apps distributed on the App Store in Indonesia, is Core NFC limited to NDEF and non–Secure Element tag reading only? Are there any publicly supported alternatives or recommended architectural approaches for NFC-based workflows in regions where the Secure Element entitlement is unavailable? Is there any public documentation or guidance that outlines regional availability for NFC Secure Element features? I understand that entitlement approvals and availability may vary by region and are handled on a case-by-case basis. Any clarification from Apple engineers or developers with experience in this area would be greatly appreciated. Thank you for your time and assistance. Best regards.
Replies
1
Boosts
0
Views
354
Activity
Jan ’26
Can I hide the NFC App Clip card?
Dear Apple Engineers: My app utilizes the App Clip experience. I would like to prevent the App Clip card from appearing when the host app is running in the foreground. How can this be achieved? I have observed that Alipay (in China) does not display an App Clip card when the device is tapped against a tag while the app is in the foreground, which indicates that this behavior is possible. Thank you for your assistance.
Replies
0
Boosts
1
Views
77
Activity
Jan ’26
How to hide the NFC reading pop-up prompt?
Dear Apple Engineers, I am using NFCNDEFReaderSession to read information from NFC tags. When calling the begin method of the session, a system dialog/popover appears at the bottom of the screen. Is it possible to suppress or disable this dialog? Thank you for your assistance. Here is my demo code: @IBAction func beginScanning(_ sender: Any) { guard NFCNDEFReaderSession.readingAvailable else { let alertController = UIAlertController( title: "Scanning Not Supported", message: "This device doesn't support tag scanning.", preferredStyle: .alert ) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) self.present(alertController, animated: true, completion: nil) return } session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true) session?.alertMessage = "Hold your iPhone near the item to learn more about it. session?.begin() }
Replies
1
Boosts
0
Views
126
Activity
Jan ’26