I am developing an iOS app that uses Core NFC to communicate with an ISO 14443 / ISO 7816 smart card.
For security reasons, I would like to minimize or temporarily prevent other external communications while an NFC read/write session is active.
My questions are:
- Is there any supported iOS API or entitlement that allows an app to temporarily disable or block Wi-Fi, cellular, or Bluetooth communication while a Core NFC session is active?
- If device-wide communication cannot be controlled by a third-party app, is there a supported way to guarantee that the app’s own process performs no network communication during that NFC session?
- Does Apple recommend any architecture or security practice for implementing an offline-only Core NFC read/write operation?
The NFC communication itself must remain available during the operation.
Thank you.
I can’t really speak to the Core NFC specifics here but…
iOS doesn’t offer a general way for a standard app to disable networking for the device as a whole. Apps can affect system networking, but there’s nothing appropriate for your use case. For example, an app can include a Network Extension provider that blocks networking, but such a provider must either be authorised by the user or by device manager.
There’s also no general way for an app to do this to itself.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"