iOS 13 で FeliCa (Suica) にアクセス

2019年6月19日Apple, Swift, プログラミング

iOS 13 以降の Core NFC ではこれまで読めなかった FeliCa や MIFARE も読めるようになりました。ここでは FeliCa の IDm を取得して表示するサンプルを作成する手順を紹介します。

Near Field Communication Tag Reading を有効にする

まずは、TARGET の Signing & Capabilities で Near Field Communication Tag Reading を有効にします。

スクリーンショット 2019-06-06 8.39.35.png

そうすると、entitlements ファイルがプロジェクトに作成されます。

中には NDEF のものも含まれていますが、今回は NDEF は読み取らないので NDEF は消してしまっても問題ありません。

2019-06-06 8.45.29

Info.plist の設定

続いて、Privacy – NFC Scan Usage Description と ISO18092 system codes for NFC Tag Reader Session を Info.plist に追加します。

Privacy – NFC Scan Usage Description はユーザーへ NFC を使うことへの説明書きを入力しておき、ISO18092 system codes for NFC Tag Reader Session にはあらかじめ、読み取りに使用する FeliCa のシステムコードを全て入力しておく必要があります。ワイルドカードは使用できません。

スクリーンショット 2019-06-06 8.46.47.png

サンプルコード

以上で各種設定事項は終わりです。サンプルプロジェクト一式は GitHub にアップロードしてあります。

treastrain/ios13-felica-reader: Sample project to read FeliCa on iOS 13 and later – GitHub

なぜか WordPress の調子が悪く…コードを直接載せると表示が崩れてしまうので、サンプルコードのみ閲覧したい方は Qiita で公開している記事の方をご覧ください。

【WWDC19】Core NFC で FeliCa(Suica) を読み取るサンプル【iOS 13 以降】 – Qiita

余談 – Apple Watch の Suica を iPhone で読み取る

ちなみに、これを利用して Apple Watch の Suica を iPhone で読み取ることも出来ます。