iOS13.2以降でCoreNFCが動かない!っていう現象が発生したので検証してみました。


概要

 NFCタグのIDを読み込んでみるアプリを作っていたのですが、iOSを最新にしたら動かなくなってしまったので色々検証た結果、iPhoneXR以降(iPhoneXR、iPhoneXS、iPhone11、iPhone11 PRO、iPhone11 PRO MAX)しか動かなくなった(らしい)というのがわかりました。
 以下に詳細を記載してみたいと思います。

追記

 iOS13.2.3にアップデートしたらNFCタグが読めるようになりました!
 ってことでOSバグだったようです。サイレントバグ修正ありがとうございます(酷)

発生した問題

 iOS13にてCoreNFCというライブラリ(NFCTagReaderSessionとかNFCNDEFReaderSessionとか)が使えるようになり、NFCタグからIDなどを読めるようになりました。

 iOS13.0系とか13.1系にてNFCタグを読み取って色々使ってみており、NFCタグ読めるーワーイスゴーイターノシー♪ってなってました(何)

 ところが、iOSを最新版にアップデートした途端(13.1.3から13.2.2)、「あなたの端末は対応していません!」みたいな文句を言われ、NFCの読み取りができなくなってしまいました!!(滝泣)

なので検証してみた

手元にiPhone6S、iPhoneX、iPhoneXR、iPhone11があったので(多)それぞれで試してみました。

iPhone6Sの場合

 iOS13.1.3の時代、NFCTagReaderSessionを使用したアプリを作成、NFCタグを読み取ってワーイスゴーイターノシー♪ってなってました(しつこい)
 iOS13.2.2にアップデートしたら……「あなたの端末は対応していません!」
 読み取り画面すら出て来なくなりました。。。

iPhoneXの場合

 そもそもこの現象を最初に確認したのがこのiPhoneX。
 iOS13.1.3の時代、NFCTagReaderSessionを使用したアプリを作成、NFCタグを読み取ってワーイs(ry
 iOS13.2.2にアップデートしたら……「あなたの端末は対応していません!」
 読み取り画面すら出て来なくなりました。。。

iPhoneXRの場合

 「iPhone11以上なら動くんじゃね?」っという噂を聞きつけたので、「まさかの最新機種だけの限定機能になってしまったの?(つぶらな瞳)」という不安をもとに検証しました。
 ドキドキしながらiOS13.2.3にアップデート……完了!
 ぷるぷる震えながら(誇大表現)NFCタグ読み取りボタンを押してみたら…………読めた! ヨメター!!(BGM:□ッキーの勝利曲)
 IDから(読み取れる範囲の)中身のデータまで取得ができました。

iPhone11の場合

 実は上記の噂を聞きつけ、XRより先に検証したんですが、この現象が発生してから「最新系列を持ってないといかん」という感覚で手元に入手。
 入手した時にたまたま13.1.3だったので、ちゃんとNFCタグが読めることを確認してからアップデート、無事にIDから(読み取れる範囲の)中身のデータまで取得ができました。

結論

 どうやらiPhoneXR以降(iPhoneXR、iPhoneXS、iPhone11、iPhone11 PRO、iPhone11 PRO MAX)だったら正常に動作するようです。

これは勝手な推理(妄想?)なんですが
 ・CoreNFCでバックグラウンドからNFCタグを読めるようになったのがiPhoneXR以降
 ・Apple純正アプリである所の「ショートカット」の中にある「オートメーション」の起動選択肢に「NFC」が選択できるようになったのがiPhoneXR以降
 ・Apple公式HPで表示されてる製品ラインナップがiPhoneXR以降(XSがいつの間にかいなくなっていますが)
ということで、バグというより仕様という気がしております。
なーんにもお知らせされてない気がするのでせめて事前にどこかで教えて欲しかった。。。(泣)

 iOS13.2.3にアップデートしたらNFCタグが読めるようになりました!

追伸

 検証してみる段階だったり検証してみた段階だったりでネットに情報が見当たらなかったので、初めてなんですが記事を書いてみました。
 すでに一般常識ですからー! ここに情報載ってますからー!! みたいな状態だったらゴメンナサイします。
 ただの文章しかないのでQuitaの技術記事っぽくないですが、どこかのどなたかの役に立てたらとっても嬉しいなと思います。

 最後まで読んでいただき、ありがとうございました!!(感謝)