Skip to content

Repository files navigation

FacePlugin

🌐 Company Site - Here

πŸ€— Hugging Face - Here

πŸ›Ÿ Help Center - Here

🐳 Docker Hub - Here

FacePlugin Face Liveness Detection SDK β€” iOS (Fully On-Premise)

Ready in ~10 minutes (after framework download): Unzip Drive frameworks into this folder β†’ Run on a phone Jump: Quick start Β· Get the framework Β· Run the demo Β· Setup Β· About SDK

Quick start checklist

  • Clone https://github.com/Faceplugin-ltd/FaceLivenessDetection-iOS
  • Download the .zip files from Google Drive
  • Unzip into this folder (facelivenessdk.framework, FaceLivenessEngine.framework, onnxruntime.framework)
  • Open FaceLivenessSDK.xcodeproj β†’ set your Team β†’ Run on a physical iPhone
  • Home status shows ready β†’ Liveness / Settings / About unlock

Your own app? Skip to Setup on your own app. Full API: doc.faceplugin.com.

Introduction

FacePlugin Face Liveness Detection SDK for iOS is a fully on-device anti-spoofing engine for KYC and remote identity verification. iBeta level 2–class passive liveness detects printed photos, video replay, 3D masks, and deepfake-style attacks β€” no extra hardware, no cloud.

All processing stays on the iPhone. No biometric data leaves the device.

This repository is the iOS demo app. Runtime frameworks download from Google Drive. No other FacePlugin repository is required.

Main Functionalities

Demo tile What it does
Liveness Live camera anti-spoofing with face overlay + liveness metrics
Settings Camera lens, liveness threshold
About FacePlugin Face Liveness SDK β€” on-device anti-spoofing

Product List

Platform Repository
Android (Recognition) FaceRecognition-Android
iOS (Recognition) FaceRecognition-iOS
React Native (Recognition) FaceRecognition-React-Native
Flutter (Recognition) FaceRecognition-Flutter
Ionic Capacitor (Recognition) FaceRecognition-Ionic-Capacitor
Ionic Cordova (Recognition) FaceRecognition-Ionic-Cordova
Windows (Recognition) FaceRecognition-Windows
Linux / Docker (Recognition) FaceRecognition-Docker
Android (Liveness) FaceLivenessDetection-Android
iOS (Liveness) FaceLivenessDetection-iOS (this repo)
Windows (Liveness) FaceLivenessDetection-Windows
Linux / Docker (Liveness) FaceLivenessDetection-Docker

Before you start

Step What you need
1 Xcode 15+ and a physical iPhone
2 Unzipped frameworks in this folder β€” see Get the framework
3 Demo license is already in the repo for com.faceplugin.facelivenessdk. Request a new key only if you change bundle id β€” see SDK License

System requirements

Item Minimum Recommended
iOS 13.0 16 or newer
Device Physical iPhone Same; simulator is not for camera / liveness

Get the framework

Frameworks are stubs on GitHub because the binaries are too large. On Drive they ship as zips β€” unzip after download.

Where to download

FaceLivenessSDK iOS (Google Drive) β€” facelivenessdk.framework.zip, FaceLivenessEngine.framework.zip, onnxruntime.framework.zip

How to place it

git clone https://github.com/Faceplugin-ltd/FaceLivenessDetection-iOS.git
cd FaceLivenessDetection-iOS

Unzip and place frameworks at the repo root (next to FaceLivenessSDK.xcodeproj):

FaceLivenessDetection-iOS/
β”œβ”€β”€ FaceLivenessSDK.xcodeproj
β”œβ”€β”€ FaceLivenessKit/
β”œβ”€β”€ FaceLivenessSDK/
β”œβ”€β”€ facelivenessdk.framework/
β”œβ”€β”€ FaceLivenessEngine.framework/
└── onnxruntime.framework/

Run the demo

  1. Open FaceLivenessSDK.xcodeproj in Xcode.
  2. Set your Team for signing.
  3. Run on a device. The demo already has a valid licenseKey for com.faceplugin.facelivenessdk.

Keep bundle id com.faceplugin.facelivenessdk for the included license.

Screenshots

Home Liveness Settings About

FacePlugin Face Liveness β€” Home with Liveness, Settings, About

FacePlugin Face Liveness β€” live camera anti-spoofing with face box and metrics

FacePlugin Face Liveness β€” Settings for camera lens and liveness threshold

FacePlugin Face Liveness SDK β€” About, on-device anti-spoofing

SDK License

Licenses are offline and bound to your bundle identifier.

The sample app already includes a valid key for com.faceplugin.facelivenessdk. You only need a new key if you use a different bundle identifier.

How to get a license

The code below shows how to use the license:

private let licenseKey =
"FP1.RlBMMQMAAQCjVfjWT+hhtaH1i93+AQAA7cVVYGJq6PepR7PFjKOCPn7vDrT3uLnbpAuD1NPiBH7cmAGtYIyQLEYkzRJTGT5dWKwFrCBBxf2xD0tNA13I0nsztxY5jpClCC0C01+gFc6IjTsELNXR2q3XFJfIvKtK4Ws23k+5Kn4LSdT0/oilRLjm0q1bfHv6C4y9XcaG6bxEvem2Vk6yFtU18YuwIMDOQdiyPYmlbwW4xv+0WWWnaAv86Sfa4XtgTNj6TyjAdHbhNRrMhKbs430VDKW/kjYtTS/8jlECcRMJmBI4v5gk7Z5allzF/HmrDJJmJERbMFmOPlYJnm3LmV2mtkzKyYMSaN52j0E4JfjZjTqATZZLZeEWSzcIEqy8x7bCu47GilMpqVEQazXzxHLFyIrm/M0HfH4Jdvgz5TnOcUysGbNZJHu7aDk+TTFEPZtWrYYZe4377KjTwAFTChZ332eCQyNc4AQ7uruyP1W4DBQkk/Hi/+C5ZQTVqu/46tCEJlbtTAtjEynskNEUhBk8C/razydA1vHJ7477Xds+XB+ei+fLduMYTUw44WmGu/jf13auCLM8xLGUxBjh9dF/mr8G0uc2HDZ0zeuB9V6vUJzxzE1leU9aEW2KPcPDWakLly6I3MGiwzDDLN0JkzFuerMiJYhT0Lc3p+RzxAXNmzXdPk37ZElsb2MJlCcw7GxUz7c0iwAwgYgCQgHkib0i9PSduxMTa9/OvKStFjzMSnpGV0cyzcp2ncBCmwsNJ4Ho1NwC5SKVlYazYRczMpRld5uyxbJFNs4diZUpDwJCANWUtzCImptEZZKsUQ2vdcGKf1awzrLT5NcejKyb+erw7fBm5otDfeS+OiUTPt75DMIs0WZTEqIwsK6QKGo7sLhW"

FaceLivenessClient.shared.activate(license: licenseKey) { [weak self] code in
guard let self else { return }
self.sdkReady = code == 0
if self.sdkReady {
self.warningLabel.text = "SDK ready"
self.warningLabel.backgroundColor = FPColor.statusOk
self.setSdkActionsEnabled(true)
} else {
self.warningLabel.text = self.licenseMessage(code)
self.warningLabel.backgroundColor = FPColor.statusError
self.setSdkActionsEnabled(false)
}
}

Please contact us to get a license for your own app.

Setup on your own app

Minimal integration (details: doc.faceplugin.com):

  1. Add facelivenessdk.framework, FaceLivenessEngine.framework, and onnxruntime.framework (Embed & Sign).
  2. Optionally copy FaceLivenessKit for FaceLivenessClient helpers.
  3. Activate once at launch (off the main thread): FaceLivenessClient.shared.activate(license: "FP1.…") { code in … } (0 = success).
  4. Add NSCameraUsageDescription in Info.plist.

Request a license for your bundle id, not the demo’s.

About SDK

Use FaceLivenessKit (FaceLivenessClient.shared) or call the native SDK from Objective-C++. Call once per process: activate β†’ init. Serialize native work. Full reference: doc.faceplugin.com.

Code Meaning
0 Success
1 License invalid
2 License expired
3 Not activated
4 Init failed

Contact

faceplugin.com  faceplugin.com

Releases

Packages

Contributors

Languages