Skip to content

tunaingot/NFC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NFC

概要

SONYのカードリーダー「RC-S300」を使って「NTAG213/215」を読み書きするためのアプリケーションの「Xcodeプロジェクト一式」です。

macOS 13以降はSONYの ドライバ インストール不要で利用できます。

すでにカードのリード・ライトができるアプリケーションのプロジェクトです。
独自のアプリを作りたい場合は、プロジェクト内のLNTAG215クラスを使えば容易に実現可能です。

必要な作業

SONYのRC-S300は、macOS上では「スマートカードリーダー」と認識されています。

このハードウェアには何も宣言せずにアクセスすることはできず、entitlements.plistを追加しなくてはいけません。
このプロジェクトにはすでに追加されていますし、ファイル参照の設定もされています。

entitlements.plistファイルの内容

下表の値を記述したplistを追加します。

Key Type Value
com.apple.security.smartcard Boolean YES

entitlements.plistファイルの参照登録

XcodeのBuild Settingにentitlements.plistを指定します。
下記の場所にentitlements.plistのパスを追記します。
デフォルトでは空っぽです。

Build Setting > Signing > Setting > Code Signing Entitlements

追加するのはentitlements.plistのパスです。
このプロジェクトの場合は、下記の通りになります。

NFC/entitlements.plist

LNTAG215クラス

このクラスにはLNTAG213/215タグをリード・ライトするための機能が全て備わっています。
このクラスをXcodeプロジェクトに取り込むことで、独自のアプリの開発も可能です。

このクラス自体は完全に独立したクラスにはなっておらず、一部

  • LLocalizer.swift
  • extensions for NFC.swift

の機能も利用しています。
必要に応じて、これらのファイルもXcodeに取り込むか、LNTAG215.swiftの中に追記してください。

インスタンスの生成

init()メソッドが用意されています。

var card = LNTAG215()

デリゲートの設定

データはデリゲートメソッドによって渡されます。
例えば、Xcodeプロジェクトを作成したときに作られるViewControllerにLNTAG215Delegateを適用してください。

extension ViewController: LNTAG215Delegate {

}

このデリゲートを適用すると、下記のメソッドを追加するよう、Xcodeが通知しますので、そのまま作成してください。

func didFinishSearchingCardReaders(info: [SmartCardReaderInfo])
func didFinishReadingUID(UID: String?)
func didFinishReadingCardData(cardData: NTAGCardData?)
func didFinishWritingCardData(success: Bool)

それぞれの処理が終わったとき、上記メソッドが呼ばれます。

カードリーダー状態を取得

public func searchReaders() 

カードリーダーを探します。
結果は下記デリゲートメソッドで取得できます。

func didFinishSearchingCardReaders(info: [SmartCardReaderInfo])

カードリーダーが複数接続されている場合を考慮し、infoは配列にしてあります。
構造体SmartCardReaderInfoはカードリーダーの情報が入っています。
読み出して適宜処理をしてください。

UIDのリード

public func readUIDAsync()

リードを開始します。
リード結果は下記デリゲートメソッドで取得できます。

func didFinishReadingUID(UID: String?)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages