Core NFC

Detect NFC tags and read messages that contain NDEF data.


Your app can read tags to give users more information about their physical environment and the real-world objects in it. Using Core NFC, you can read Near Field Communication (NFC) tags of types 1 through 5 that contain data in the NFC Data Exchange Format (NDEF). For example, your app might give users information about products they find in a store or exhibits they visit in a museum.



Building an NFC Tag-Reader App

Read NFC tags with NDEF messages in your app.

Adding Support for Background Tag Reading

Allow users to scan NFC tags without an app using background tag reading.

property list key NFCReaderUsageDescription

A message that tells the user why the app is requesting access to the device’s NFC hardware.

Name: Privacy - NFC Scan Usage Description

Reader Sessions

Create a reader session to scan and detect NFC tags.

class NFCNDEFReaderSession

A reader session for detecting NFC Data Exchange Format (NDEF) tags.

class NFCTagReaderSession

A reader session for detecting ISO7816, ISO15693, FeliCa, and MIFARE tags.

class NFCVASReaderSession

A reader session for processing Value Added Service (VAS) tags.

class NFCReaderSession

The abstract base class that represents a reader session for detecting NFC tags.

protocol NFCReaderSessionProtocol

A general interface for interacting with a reader session.

Near Field Communication Tag Reader Session Formats Entitlement

The Near Field Communication data formats the app is allowed to read.


Tag Types

Read tag data, and save data to writable tags, by using the appropriate tag type interface.

Creating NFC Tags from Your iPhone

Save data to tags, and interact with them using native tag protocols.

protocol NFCISO7816Tag

An interface for interacting with an ISO 7816 tag.

protocol NFCISO15693Tag

An interface for interacting with an ISO 15693 tag.

protocol NFCFeliCaTag

An interface for interacting with a FeliCa tag.

protocol NFCMiFareTag

An interface for interacting with a MIFARE tag.

protocol NFCNDEFTag

An interface for interacting with an NDEF tag.

class NFCTagCommandConfiguration

A set of parameters you use to define the configuration of an NFC tag command.

NDEF Messages and Payloads

class NFCNDEFMessage

An NFC NDEF message consisting of an array of payload records.

class NFCNDEFPayload

A payload record in an NFC NDEF message.


struct NFCReaderError

An error type that indicates problems with reader sessions or tags.

let NFCTagResponseUnexpectedLengthErrorKey: String

A user-information dictionary key that indicates an invalid received response packet length.



Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software