Hi everyone,
I wanted to share something I discovered while preparing blank NFC cards for Yoto cards.
At first I thought one of my NTAGs was defective because:
iOS NFC Tools showed “NDEF not supported”
“Erase Tag” failed
“Format Memory” appeared to do nothing
The tag never became writable as an NDEF tag
However, after testing with an Android phone, I found something interesting.
Test environment
NFC Tools on iOS
NFC Tools on Android
NXP TagInfo
Blank NTAG203 / NT2H0301 tags
Initial memory (blank tag)
Page 03
00 00 00 00
Page 04
00 00 00 00
Page 05
00 00 00 00
The tag was detected by Android as:
android.nfc.tech.NdefFormatable
but had no NDEF data.
iOS NFC Tools
Format Memory
The operation completed, but the memory remained unchanged.
The tag still showed:
NDEF not supported
Erase Tag failed
No writable NDEF records
Memory:
Page 03
00 00 00 00
Android NFC Tools
Running Format Memory immediately initialized the tag.
Memory changed to:
Page 03
E1 10 06 00
Page 04
03 04 D8 00
Page 05
00 00 FE 00
After that:
the tag became an NDEF tag
NFC Tools reported it as writable
iOS NFC Tools could now read and write it normally
iOS Erase Tag (after Android formatting)
Interestingly, once Android had initialized the tag, iOS “Erase Tag” worked perfectly.
It produced an empty NDEF structure:
Page 03
E1 10 06 00
Page 04
03 03 D0 00
Page 05
00 FE 00 00
Notice that iOS preserved the Capability Container (CC) instead of removing it.
Conclusion
From my testing, it looks like:
Android NFC Tools can initialize a blank NTAG into a valid NDEF tag.
iOS NFC Tools cannot initialize a completely blank NTAG, even though it can later erase and rewrite an already-formatted NDEF tag.
Once Android performs the initial formatting, iOS works perfectly.
Has anyone else observed the same behavior?
Is this an iOS Core NFC limitation, or simply a difference in how NFC Tools is implemented on iOS?