LibJeID for iOS

対応機種

iOS13を導入済みの以下の端末で動作確認しています。

  • iPhone SE (第2世代)
  • iPhone 11
  • iPhone XS
  • iPhone XR
  • iPhone X
  • iPhone 8

その他の機種につきましては、動作確認を行い次第こちらに記載いたします。

開発環境

  • Xcode11以降

ライブラリの導入方法

LibJeID for iOSは下記URLからダウンロードしたものを配置してご利用ください。

ダウンロードには弊社から連絡差し上げたサブスクリプションIDとアクセスキーによる認証が必要となります。

https://www.osstech.co.jp/download/libjeid/framework/full/

Xcodeは最新バージョンを事前にインストールしておいてください。

1. ライブラリの配置

Xcodeでライブラリを導入したいプロジェクトを開いてください。

上記URLでダウンロードしたZIPファイルに含まれるlibjeid.xcframeworkをプロジェクトにドラック&ドロップして配置してください。 (注: 20200326以前のバージョンはlibjeid.frameworkを配置します)

以下の例では、あらかじめFrameworksというグループを作成しておき、その直下に配置しています。

参考画像

「Choose options for adding these files」のウィンドウが表示されますので、「Copy items if needed」にチェックを入れて「Finish」を押下してください。

2. Info.plistの編集

アプリのInfo.plistをXcodeで開き、以下を追加します。

KeyTypeValue
Privacy - NFC Scan Usage DescriptionStringNFCリーダーを使用する理由
ISO7816 application identifiers for NFC Tag Reader SessionArray(9 items)
Item 0StringA00000023101
Item 1StringA00000023102
Item 2StringD392F000260100000001
Item 3StringD3921000310001010401
Item 4StringD3921000310001010402
Item 5StringD3921000310001010408
Item 6StringD392F0004F0200000000000000000000
Item 7StringD392F0004F0300000000000000000000
Item 8StringD392F0004F0400000000000000000000
参考画像

Xcodeを用いずにInfo.plistを直接編集する場合、以下を追記してください。 NFCReaderUsageDescriptionに対応する値にはNFCリーダーを使用する理由を記述します。

<key>NFCReaderUsageDescription</key>
<string>NFCリーダーを利用する理由</string>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
	<string>A00000023101</string>
	<string>A00000023102</string>
	<string>D392F000260100000001</string>
	<string>D3921000310001010401</string>
	<string>D3921000310001010402</string>
	<string>D3921000310001010408</string>
	<string>D392F0004F0200000000000000000000</string>
	<string>D392F0004F0300000000000000000000</string>
	<string>D392F0004F0400000000000000000000</string>
</array>

補足

カード種別とデータを読み取る際に使用するAIDの対応関係は以下のとおりです。

カード種別使用するAID
運転免許証A00000023101, A00000023102
マイナンバーカードD392F000260100000001, D3921000310001010401, D3921000310001010402, D3921000310001010408
在留カードD392F0004F0200000000000000000000, D392F0004F0300000000000000000000, D392F0004F0400000000000000000000

Info.plistに読み取りたいカードに対応するAIDのみを追加することで、任意のカードのみ読み取り可能なアプリにすることもできます。 例えば以下のようにA00000023101とA00000023102のみを追加した場合、アプリは運転免許証を読み取ることができますが、それ以外のカードは読み取ることができません。

KeyTypeValue
Privacy - NFC Scan Usage DescriptionStringNFCリーダーを使用する理由
ISO7816 application identifiers for NFC Tag Reader SessionArray(2 items)
Item 0StringA00000023101
Item 1StringA00000023102

Xcodeを用いずにInfo.plistを直接編集する場合、以下のようになります。

<key>NFCReaderUsageDescription</key>
<string>NFCリーダーを利用する理由</string>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
	<string>A00000023101</string>
	<string>A00000023102</string>
</array>

3. Capabilitiesの設定変更

以下のように画面を進めてください。

プロジェクト名を選択 -> TARGETSでアプリのターゲットを選択 -> Signing & Capabilitiesを選択

「+ Capability」を押下してください。

参考画像

表示されたウィンドウで「Near Field Communication Tag Reading」を探してダブルクリックします。

参考画像

「Near Field Communication Tag Reading」が追加されたことを確認します。

参考画像

エラーが表示された場合、Provisioning ProfileやTeamの設定をご確認ください。

サンプルアプリのビルド手順

1. Xcodeのインストール

App StoreでXcodeをインストールしてください。

すでにXcodeをインストール済みの場合、最新バージョンであることをご確認ください。

2. サンプルアプリのソースコードをダウンロード

こちらからサンプルアプリのソースコードをcloneしてください。

ダウンロードが完了したら、任意のフォルダに展開しておきます。

3. ライブラリのダウンロード

下記URLから最新のバージョン(日付)のZIPファイルをダウンロードします。

ダウンロードには弊社から連絡差し上げたサブスクリプションIDとアクセスキーによる認証が必要となります。

https://www.osstech.co.jp/download/libjeid/framework/full/

ダウンロードしたZIPファイルを展開し、libjeid.xcframeworkをダウンロードしたサンプルコードのプロジェクトのFrameworksフォルダの中に配置してください。 (注: 20200326以前のバージョンはlibjeid.frameworkを配置します)

4. Signingの設定変更

以下のように画面を進めてください。

jeidreaderを選択 -> TARGETSでjeidreaderを選択 -> Signing & Capabilitiesを選択

TeamおよびBundle Identifierの値を環境に合わせた値に変更してください。

参考画像

5. ビルド&テスト

サンプルアプリのプロジェクトに含まれるjeidreader.xcodeprojをダブルクリックして、Xcodeを起動してください。

アプリのテストを行いたい端末を接続し、接続した端末を画面左上の端末名が表示されている箇所で選択してください。

Xcode画面左上の三角マークを押下してください。

参考画像

この際、Xcodeや端末で許可を求める旨の表示があった場合は適宜許可してください。

テスト対象にシミュレーターを選択した場合、アプリ自体は起動しますがNFCによる読み取りはできません。

サードパーティライセンス

LibJeID for iOSはOpenSSLをスタティックリンクしています。

OpenSSLはOpenSSL LicenseとSSLeay Licenseのデュアルライセンスに基づいて再配布できます。