はじめに
私は先日、PasswordBox というアプリをリリースしました。
このアプリは簡単に説明すると Password Manager アプリケーションです。
パスワードを扱う以上、セキュリティ性を高めるためにアプリを使用するにはパスコード等を使ってアプリを使う必要があります。
しかし、ログイン画面を1から使うのは大変だし、個人的にこのアプリで Firebase などを使ったログイン認証を作りたくなかったので、このアプリでは FaiceID を使っています。
この記事では、FaceID の認証方法を解説していきます。
開発環境
- Xcode15
- Swift5.10
実装方法
Info の設定
- プロジェクトファイルの設定を開く
- ターゲットを開く
- info を選択
- `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 の任意の場所(.onAppear
や Button(action: {}
など) においてあげると FaceID を使用することができます。
最後に
PasswordBox はOSSな iOS アプリケーションです。
コントリビューション、お待ちしております。
参考文献