メインコンテンツまでスキップ

iOS アプリへの SDK 組み込み

このセクションでは、Xcode を用いて作成したプロジェクトへの SDK 組み込み方法を説明します。

SDK 取得用トークンは、SDK 取得用トークンの作成を参照して予め用意しておいてください。

Xcode のインストール​

公式ドキュメントをご参照ください。

この資料では Xcode 16 を使用して解説します。 他のバージョンを利用する場合は、画面の表示等が異なる場合がありますので、ご了承ください。

Apple Developer Program への登録​

NFC に関連する機能を使用するためには、Apple Developer Program への登録が必要です。

詳しくは公式サイトをご参照ください。

プロジェクトの作成​

Xcode を起動し「Create New Project...」を選択します。

「App」テンプレートを選択し「Next」をクリックします。

プロジェクトの詳細情報を設定します。この資料では、SwiftUI を使用してサンプルアプリを作成します。

SDK の組み込み​

注意

この設定は、モック環境用の SDK を読み込む設定です。 本番環境用 SDK を利用する場合には、本番環境を参照してください。

プロジェクトへの SDK 組み込みは、以下の 2 つの方法があります。

  • Swift Package Manager
  • Cocoapods

プロジェクトナビゲータから、プロジェクトの設定画面を開きます。

サイドバーの「PROJECT」の下にあるプロジェクト名(ここでは「Example」です)を選択し、上部のタブから「Package Dependencies」を選択し、「Packages」テーブルの下にある「+」をクリックします。

開いたパネルの右上にある検索欄に、SDK の URL を入力します。 ここでは、 https://repo.platform.p8n.app/VerifyMockJPKI/ を入力します。

認証画面が表示されるので、以下の通り情報を入力します。

SDK が正しく読み込まれたら、「Add Package」をクリックします。

「Add To Target」でアプリターゲット(ここでは「Example」です)を選択し、「Add Package」をクリックします。

プロジェクトの設定​

NFC の有効化​

プロジェクトナビゲータから、プロジェクトの設定画面を開きます。

サイドバーの「TARGETS」の下にあるアプリターゲット名(ここでは「Example」です)を選択し、上部のタブから「Signing & Capabilities」を選択します。 Team の部分をクリックし、Apple Developer Program に登録した Team を選択します。選択後、証明書がプロビジョニングされて下の「iOS」セクションのエラーが消えることを確認します。

同じ画面で、右上の「+ Capability」をクリックし、「Near Field Communication Tag Reading」を選択します。

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

タブから「Info」を選択し、下の「Custom iOS Target Properties」の「+」をクリックし、「Privacy - NFC Scan Usage Description」を追加します。 Value には、NFC を使用する理由(○○ カードの読み取り等)を記載します。

利用可能な NFC カードの設定​

注意

この設定値は、モック環境向けの設定です。 本番環境で利用する場合には、本番環境を参照してください。

同様にして、「ISO18092 system codes for NFC Tag Reader Session」を追加します。 Value には、以下の値を設定します。

  • 0003 (交通系 IC カード)
  • FE00 (電子マネー)
  • 88B4 (FeliCa Lite-S)

ヒント

モック環境では、FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443-4 Type-A カード(クレジットカードなど)をタッチすると、マイナンバーカードの挙動がシミュレートされます。

このとき、読み取りの対象となる FeliCa のシステムコードを予め指定しておく必要があります。 上記3種類のシステムコード以外のシステムコードも指定することができます。

詳しくはSDK リファレンスをご覧ください。

サンプルコードの追加​

プロジェクトナビゲータから、ContentView ファイルを開きます。

以下のコードで置き換えてください。

import SwiftUI
import VerifyMockJPKI

func run(pin: String) async throws -> String {
// JPKI APへの接続準備を行います。
let session = ReaderSession(dispatchQueue: DispatchQueue.main)

// ここに実装を追加します。

session.close()
return "not implemented"
}

struct ContentView: View {
@State private var pin = ""
@State private var result = ""
var body: some View {
VStack {
TextField("パスワード", text: $pin).textFieldStyle(.roundedBorder)
Button {
Task {
result = "カードをタッチしてください ..."
do {
result = try await run(pin: pin)
} catch {
result = "エラー: \(error.localizedDescription)"
}
}
} label: {
Text("実行").frame(maxWidth: .infinity)
}
.buttonStyle(.borderedProminent)
ScrollView(.vertical) {
Text(result)
.frame(maxWidth: .infinity, alignment: .leading)
}
.textSelection(.enabled)
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.top)
}
.frame(maxHeight: .infinity, alignment: .topLeading)
.padding()
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

これ以降、ハイライトしたrun()の中身を実装していきます。

ビルド​

Xcode のツールバーから、任意の iPhone シミュレータを選択し、ターゲットに設定します。

その後、ツールバーの「▶」ボタンをクリックして、ビルドを実行します。 ビルドが完了すると、雛形のアプリが起動します。

これで SDK の組み込みは完了です 🎉


次のステップ​

API リファレンスを参照して、その他の機能を確認しましょう。 ブラウザ上でモック環境へのリクエストを試すこともできます。

実際のアプリケーションでの署名検証(身元確認)は、身元確認を参照してください。