1
0

はじめに

私は先日、PasswordBox というアプリをリリースしました。

このアプリは簡単に説明すると Password Manager アプリケーションです。
パスワードを扱う以上、セキュリティ性を高めるためにアプリを使用するにはパスコード等を使ってアプリを使う必要があります。
しかし、ログイン画面を1から使うのは大変だし、個人的にこのアプリで Firebase などを使ったログイン認証を作りたくなかったので、このアプリでは FaiceID を使っています。

この記事では、FaceID の認証方法を解説していきます。

開発環境

  • Xcode15
  • Swift5.10

実装方法

Info の設定

  1. プロジェクトファイルの設定を開く
  2. ターゲットを開く
  3. info を選択
  4. `Permitted background task scheduler identifiers` を追加

上記の方法で、プロジェクト設定を変更します。
また、Permitted background task scheduler identifiers を追加したら、このアプリが生体認証を使用する目的をユーザーに説明する必要があります。

処理の追加

以下のコードを追加します。

    private func authenticate() {
        let context = LAContext()
        var error: NSError?
        
        if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) {
            let description = "認証が必要です"
            
            context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: description) { success, authenticationError in
                DispatchQueue.main.async {
                    self.isUnlocked = success
                }
            }
        }
    }

上記のコードを SwiftUI の任意の場所(.onAppearButton(action: {} など) においてあげると FaceID を使用することができます。

最後に

PasswordBox はOSSな iOS アプリケーションです。
コントリビューション、お待ちしております。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0