本人在支付行業(yè)做了10年iOS開發(fā),總繞不開一件事:讓用戶手動輸入身份證號、銀行卡號。
16-19位數(shù)字,輸錯一位就得重來。沒人喜歡這個體驗。
所以我工作之余用 ObjC 寫了一個 OCR SDK,這次用Swift重寫了一下 OCRKit,一個開箱即用的 iOS 銀行卡/身份證 OCR 框架。把手機攝像頭對準卡,自動識別卡號、銀行名、卡類型等,不需要服務器,純端側(cè)運行。
簡介
? 實時矩形檢測(自動對焦、穩(wěn)定觸發(fā))
? 銀行卡
? 身份證
? 支持實時掃描、相冊兩種模式
? 支持深色/低對比度卡片、模糊 + 凸印卡、傾斜拍攝等復雜場景
? 純 Swift,無第三方依賴
? iOS 15+,支持 arm64 真機與模擬器
接入方式
支持三種常見接入方式:SPM、CocoaPods以及手動:
Swift Package Manager(推薦):Xcode → File → Add Package Dependencies,填入:
https://github.com/FreakLee/OCRKit-Release
或在 Package.swift 中添加:
dependencies: [
.package(url: "https://github.com/FreakLee/OCRKit-Release", from: "1.0.0"),
],
targets: [
.target(name: "YourApp", dependencies: ["OCRKit"]),
]
CocoaPods:
pod 'OCRKit'
手動:
- 前往 Releases 下載最新的
OCRKit.xcframework.zip - 解壓,將
OCRKit.xcframework拖入 Xcode 項目 - 在 Target → General → Frameworks, Libraries, and Embedded Content 中設置為 Embed & Sign
接入完成后,兩行代碼啟動掃描:
// 1、所在控制器頁面導入
import OCRKit
// 2、啟動掃描
// 銀行卡
let result = try await OCRKitSDK.shared.scanBankCard(from: self)
// 身份證人像面
//let result = try await OCRKitSDK.shared.scanIDCardFront(from: self)
// 身份證國徽面
//let result = try await OCRKitSDK.shared.scanIDCardBack(from: self)
它能處理哪些"麻煩卡"
模糊 + 凸印卡:浮雕數(shù)字光線不均勻,識別失敗后自動切換增強模式,并顯示拍照按鈕讓用戶主動補拍。

Image
傾斜拍攝:內(nèi)置透視矯正,歪著拍也能識別,最大支持 45° 傾斜。

Image
深色 / 低對比度卡:自適應分析圖像亮度和對比度,黑卡、白金卡各自使用不同的增強參數(shù),不靠固定值硬猜。

Image
后續(xù)規(guī)劃
?? 掃描二維碼 / 條形碼
?? 行駛證 / 駕駛證識別
?? 多語言卡面支持
OCRKit 完全離線運行,數(shù)據(jù)不出設備,適合對隱私敏感的金融、醫(yī)療類 App。
GitHub,歡迎試用、Star和提Issue。