---
title: Liveness（生体認証セルフィー）
description: 組み込みのライブネス検証による生体認証セルフィーキャプチャ。キャプチャしたフレームを Base64 と JWT として返します。
canonical: https://developer.unico.io/ja/dual-api/developers/sdks-and-tools/ios/capture-flow/capture-types/liveness
locale: ja
generated_by: markdown-export
---

組み込みの生体認証検証による生体認証セルフィーキャプチャ。SDK は SmartFrames を通じて生体認証的に有効なフレームが取得されるまでユーザーをガイドし、画像を Base64 と JWT として返します。

:::secondary[Capability]
このキャプチャタイプは **Liveness** capability を使用します。Liveness の仕組みの概念的な概要については、Liveness capability ページを参照してください。
:::

## 仕組み

SDK はキャプチャセッション全体を管理します：

1. SmartFrame オーバーレイでカメラを開きます。
2. ユーザーがフレーム内に顔を位置合わせするようにガイドします。
3. Liveness を検証します — セッションはユーザーが実際に存在する場合にのみ完了します。
4. `base64` と `encrypted`（JWT）を含む `SelfieResult`（別名 `ResultCamera`）オブジェクトを返します。

## カメラモード（スマートキャプチャ）

SDK はデフォルトで**インテリジェントフレーミング**と**自動キャプチャ**が有効になっています。以下のようにビルダーでカメラモードを設定します：

### Swift

  ```swift
  unicoCheck.setSmartFrame(true)
  unicoCheck.setAutoCapture(true)
  ```

### Objective-C

  ```objectivec
  [unicoCheck setSmartFrame:true];
  [unicoCheck setAutoCapture:true];
  ```

## Liveness キャプチャの開始

****ステップ 2** — `SelfieCameraDelegate` と `AcessoBioSelfieDelegate` を実装する**

これらのデリゲートはセルフィーキャプチャの結果コールバックを処理します：

  | メソッド | 説明 |
  |---|---|
  | `onSuccessSelfie(result)` | キャプチャ成功 — `base64`（プレビュー）と `encrypted`（API 用 JWT）を含む `SelfieResult` を返します |
  | `onErrorSelfie(errorBio)` | キャプチャ失敗 — コードと説明を含む `ErrorBio` を返します |

  :::warning[トークンの有効期限]
  `encrypted` の生成から API への送信までの間隔は **10 分** を超えてはなりません。
  :::

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate {

      func onSuccessSelfie(_ result: SelfieResult!) { }
      func onErrorSelfie(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    // .h
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      SelfieCameraDelegate, AcessoBioSelfieDelegate> {
      AcessoBioManager *unicoCheck;
    }

    // .m
    - (void)onSuccessSelfie:(SelfieResult *)result {
        NSLog(@"%@", result.base64);
    }

    - (void)onErrorSelfie:(ErrorBio *)errorBio { }
    ```

****ステップ 3** — `prepareSelfieCamera` と `open` を呼び出す**

SDK 設定を渡して `prepareSelfieCamera` を呼び出します。カメラの準備が完了すると、`onCameraReady` イベントが `AcessoBioCameraOpenerDelegate` とともにトリガーされます — `open()` メソッドを通じてカメラを開きます：

  - `onCameraReady(cameraOpener)` — カメラの準備完了；`open(self)` を呼び出します。
  - `onCameraFailed(message)` — カメラの準備に失敗しました（`ErrorPrepare` は `ErrorBio` の拡張です）。

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.open(self)
    }

    func onCameraFailed(_ message: ErrorPrepare!) { }
    ```

### Objective-C

    ```objectivec
    - (IBAction)openCamera:(UIButton *)sender {
        [[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
    }

    - (void)onCameraReady:(id)cameraOpener {
        [cameraOpener open:self];
    }

    - (void)onCameraFailed:(ErrorPrepare *)message { }
    ```

結果の完全な処理については、[結果の受信](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result)を参照してください。