{"id":28547274,"url":"https://github.com/ekycsolutions/ekyc-id-ios","last_synced_at":"2025-07-07T17:30:53.918Z","repository":{"id":40631884,"uuid":"507214050","full_name":"EKYCSolutions/ekyc-id-ios","owner":"EKYCSolutions","description":"An easy to use SDK for developing Identity Verification for KYC process. With this SDK, developers can quickly integrate KYC process into their iOS apps.","archived":false,"fork":false,"pushed_at":"2025-05-21T18:06:47.000Z","size":46785,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T00:09:58.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EKYCSolutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-25T04:36:19.000Z","updated_at":"2025-05-21T18:06:50.000Z","dependencies_parsed_at":"2024-03-26T08:44:24.183Z","dependency_job_id":null,"html_url":"https://github.com/EKYCSolutions/ekyc-id-ios","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/EKYCSolutions/ekyc-id-ios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EKYCSolutions%2Fekyc-id-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EKYCSolutions%2Fekyc-id-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EKYCSolutions%2Fekyc-id-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EKYCSolutions%2Fekyc-id-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EKYCSolutions","download_url":"https://codeload.github.com/EKYCSolutions/ekyc-id-ios/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EKYCSolutions%2Fekyc-id-ios/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264120103,"owners_count":23560489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-10T00:10:06.016Z","updated_at":"2025-07-07T17:30:53.913Z","avatar_url":"https://github.com/EKYCSolutions.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n![ekyc-logo](https://user-images.githubusercontent.com/81238558/175898415-4c0f508f-c2d5-4b3d-afba-f531551520d6.png)\r\n\r\n# EkycID SDK for iOS\r\n\r\n![](https://img.shields.io/badge/platform-ios-blue) ![](https://img.shields.io/github/v/tag/EKYCSolutions/ekyc-id-ios?label=version)\r\n\r\n\r\nThe EkycID iOS SDK lets you build a fantastic OCR and Face Recognition experienced in your iOS app.\r\n\r\nWith one quick scan, your users will be able to extract information from thier identity cards, passports, driver licenses, license plate, vehicle registration, covid-19 vaccinate card, and any other document by government-issued.\r\n\r\n\r\nEkycID is:\r\n* Easy to integrate into existing ecosystems and solutions through the use of SDKs that supported both native and hybrid applications.\r\n* Better for user experience being that the document detections and liveness checks are done directly offline on the device.\r\n* Great for cutting down operations cost and increasing efficiency by decreasing reliance on human labor and time needed for manual data entry. \r\n\r\n\r\nEkycID can:\r\n* Extract information from identity documents through document recognition \u0026 OCR.\r\n* Verify whether an individual is real or fake through liveness detection, and face recognition. \r\n* Verify the authenticity of the identity documents by combining the power of document detection, OCR, liveness detection, and face recognition. \r\n\r\n\r\nTo see all of these features at work download our free demo app at PlayStore. For iOS device is recently in review from apple, you can try it on TestFlight by contact our developers.\r\n\r\n# 1. Requirements\r\n\r\n- Minimum iOS Deployment Target: 10.0\r\n- Xcode 13 or newer\r\n- Swift 5\r\n- EkycID only supports 64-bit architectures (x86_64 and arm64).\r\n\r\n# 2. Installation\r\n\r\n**Step 1:** Add the following to your Info.plist.\r\n```xml\r\n\u003c!-- Camera Access --\u003e\r\n\u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\r\n\u003cstring\u003eCamera Access for Scanning\u003c/string\u003e\r\n```\r\n\r\n**Step 2:** Go to Project \u003e Runner \u003e Building Settings \u003e Excluded Architectures \u003e Any SDK \u003e armv7\r\n\r\n![](doc/build_settings_01.png)\r\n\r\n**Step 3:** Make adjustments to your Podfile as shown below.\r\n\r\n```ruby\r\n# add this line:\r\n$iOSVersion = '10.0'\r\n\r\npost_install do |installer|\r\n  # add these lines:\r\n  installer.pods_project.build_configurations.each do |config|\r\n    config.build_settings[\"EXCLUDED_ARCHS[sdk=*]\"] = \"armv7\"\r\n    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion\r\n  end\r\n  \r\n  installer.pods_project.targets.each do |target|\r\n    flutter_additional_ios_build_settings(target)\r\n    \r\n    # add these lines:\r\n    target.build_configurations.each do |config|\r\n      if Gem::Version.new($iOSVersion) \u003e Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])\r\n        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion\r\n      end\r\n    end\r\n    \r\n  end\r\nend\r\n```\r\n\r\n**Step 4:** Add the following line to your Podfile. Then run `pod install.`\r\n\r\n```ruby\r\npod 'EkycID'\r\n```\r\n\r\n# 3. Usage\r\n\r\n## 3.1. Document Scanner\r\n\r\n```swift\r\nclass ViewController: UIViewController, DocumentScannerEventListener {\r\n    var cameraView: DocumentScannerCameraView!\r\n\r\n    func onInitialize() {\r\n        print(\"onInitialize\")\r\n    }\r\n\r\n    func onDetection(detection: DocumentScannerResult) {\r\n        print(\"onDetection\")\r\n        let image = UIImageView(image: detection.faceImage!)\r\n        self.view.addSubview(image)\r\n    }\r\n\r\n    func onFrame(frameStatus: FrameStatus) {\r\n        if (frameStatus != .PROCESSING) {\r\n            print(\"\\(frameStatus)\")\r\n        }\r\n    }\r\n    \r\n    override func viewDidLoad() {\r\n        super.viewDidLoad()\r\n    }\r\n    \r\n    override func viewDidAppear(_ animated: Bool) {\r\n        super.viewDidAppear(animated)\r\n        \r\n        self.cameraView = DocumentScannerCameraView(\r\n            frame: self.view.frame,\r\n            options: DocumentScannerOptions(preparingDuration: 1)\r\n        )\r\n        self.cameraView!.setWhiteList(whiteList: [\"NATIONAL_ID\"])\r\n        self.cameraView.addListener(self)\r\n        \r\n        self.view.addSubview(self.cameraView)\r\n        \r\n        self.cameraView.start()\r\n    }\r\n    \r\n    \r\n    override func viewDidDisappear(_ animated: Bool) {\r\n        self.cameraView.stop()\r\n    }\r\n}\r\n```\r\n\r\n## 3.2. Liveness Detection\r\n\r\n```swift\r\nclass ViewController: UIViewController, LivenessDetectionEventListener {\r\n\r\n    func onCountDownChanged(current: Int, max: Int) {\r\n        print(\"current: \\(current), max: \\(max)\")\r\n    }\r\n\r\n    func onFocus() {\r\n        print(\"onFocus fish\")\r\n    }\r\n\r\n    func onFocusDropped() {\r\n        print(\"onFocusDropped\")\r\n    }\r\n\r\n    func onPromptCompleted(completedPromptIndex: Int, success: Bool, progress: Float) {\r\n        print(\"onPromptCompleted: \\(completedPromptIndex), \\(success), \\(progress)\")\r\n        self.cameraView.nextImage()\r\n    }\r\n\r\n    func onAllPromptsCompleted(detection: LivenessDetectionResult) {\r\n        print(\"onAllPromptsCompleted\")\r\n    }\r\n\r\n\r\n    func onInitialize() {\r\n        print(\"onInitialize\")\r\n    }\r\n\r\n    func onFrame(frameStatus: FrameStatus) {\r\n        if frameStatus != .PROCESSING {\r\n            print(\"\\(frameStatus)\")\r\n        }\r\n    }\r\n    \r\n    var cameraView: LivenessDetectionCameraView!\r\n    \r\n    override func viewDidLoad() {\r\n        super.viewDidLoad()\r\n    }\r\n    \r\n    override func viewDidAppear(_ animated: Bool) {\r\n        super.viewDidAppear(animated)\r\n        self.cameraView = LivenessDetectionCameraView(\r\n            frame: self.view.frame,\r\n            options: LivenessDetectionOptions(prompts: [LivenessPromptType.BLINKING, LivenessPromptType.LOOK_RIGHT], promptTimerCountDownSec: 5)\r\n        )\r\n        self.cameraView.addListener(self)\r\n        \r\n        self.view.addSubview(self.cameraView)\r\n        \r\n        self.cameraView.start()\r\n    }\r\n    \r\n    \r\n    override func viewDidDisappear(_ animated: Bool) {\r\n        self.cameraView.stop()\r\n    }\r\n}\r\n\r\n```\r\n\r\n## 3.3. Perform Face Compare and OCR\r\n\r\nTo perform face compare and ocr, you can call your server that integrated with our [NodeSDK]() to get face compare score and ocr response respectively.\r\n\r\n# 4. Contact\r\n\u003cp\u003eFor any other questions, feel free to contact us at \r\n  \u003ca href=\"https://ekycsolutions.com/\"\u003eekycsolutions.com\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n# 5. License\r\n© 2022 EKYC Solutions Co, Ltd. All rights reserved.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekycsolutions%2Fekyc-id-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekycsolutions%2Fekyc-id-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekycsolutions%2Fekyc-id-ios/lists"}