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

iOS アプリへの SDK 組み込み

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

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

Xcode のインストール

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

この資料では Xcode 14 を使用して解説します。 他のバージョンを利用する場合は、画面の表示等が異なる場合がありますので、適宜読み替えてください。

Apple Developer Program への登録

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

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

プロジェクトの作成

Xcode を起動し「Create a new Xcode project」を選択します。

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

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

SDK の組み込み

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

  • Swift Package Manager (推奨)
  • Cocoapods

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

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

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

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

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

備考

SDK の最新バージョンはPocketSign Platform コンソールからご確認ください。

ヒント

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

NFC の有効化

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

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

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

タブから「Info」を選択し、下の「Custom iOS Target Properties」の「+」をクリックし、「Privacy - NFC Scan Usage Description」を追加します。 Value には、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 リファレンスをご覧ください。

テナント ID の設定

まず、プロジェクトナビゲータから Info.plist が入ってるディレクトリ(ここでは、「Example」です)を右クリックし、「New File」を選択します。

新しく追加するファイルの種類は Property List です。一覧の中から Property List を選択し、次に進みます。

ファイルの名前を PocketSign にして作成します。

作成すると、プロジェクトナビゲータから、「PocketSign」というファイルが編集できるようになっています。 このファイルを開き、

  • Key をPocketSignVerifyTenantID
  • Type を String
  • Value を 「PocketSign Platform コンソールに表示されているテナント ID」

としてプロパティを追加してください。

サンプルコードの追加

プロジェクトナビゲータから、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()の中身を実装していきます。

ビルド

ヘッダから何らかの iPhone シミュレータを選択し、ターゲットに設定します。

「▶」ボタンをクリックして、ビルドを実行します。

エラーが出なければ、SDK の組み込みは完了です。


次のステップ

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

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