--- Source: https://docs.microblink.com/platform/sdk/ios/integration Title: Integration Description: Step-by-step integration guide for Microblink Platform iOS SDK --- # Integration ### Swift Package Manager - File > Swift Packages > Add Package Dependency - Add https://github.com/MicroblinkPlatform/microblink-platform-ios.git - Select **Exact Version** - 1.2.0 - Add all dependencies to your target! ### Clone If you prefer not to use Swift Package Manager, you can integrate MicroblinkPlatform into your project manually. Manually import xcframeworks from `Frameworks` folder. Additionally, clone [BlinkIDVerify repository](https://github.com/BlinkID/blinkid-verify-ios) to use `BlinkIDVerifyUX` and `BlinkIDVerify` xcframeworks. ### UIKit ```swift import MicroblinkPlatform import UIKit let consent = MicroblinkPlatformConsent( userId: user_id, isProcessingStoringAllowed: true, isTrainingAllowed: true, note: nil ) let serviceSettings = MicroblinkPlatformServiceSettings( workflowId: your-workflow-id, authProviderHost: your_host_url, consent: consent, additionalRequestHeaders: nil ) let microblinkPlatform = MicroblinkPlatformSDK( serviceSettings: serviceSettings, delegate: self ) let viewController = microblinkPlatform.startSDK() present(viewController, animated: true) ``` Verification results are returned via `MicroblinkPlatformSDKDelegate`. ```swift func microblinkPlatformSDKDidFinish(viewController: UIViewController, result: MicroblinkPlatformResult) { // `MicroblinkPlatformResult` has: // - status enum that returns: accept, review, reject // - transactionId string viewController.dismiss(animated: true) } func microblinkPlatformSDKDidClose(viewController: UIViewController) { viewController.dismiss(animated: true) } ``` ### SwiftUI ```swift import SwiftUI struct ContentView: View { @State private var showSDK = false var body: some View { Button("Start SDK") { showSDK = true } .fullScreenCover(isPresented: $showSDK) { MicroblinkPlatformWrapperView(workflowId: your-workflow-id, authProviderHost: your_host_url, additionalRequestHeaders: nil) { microblinkPlatfromResult in showSDK = false } onClose: { showSDK = false } } } } ``` Example of `MicroblinkPlatformWrapperView`. ```swift import MicroblinkPlatform import SwiftUI struct MicroblinkPlatformWrapperView: UIViewControllerRepresentable { let workflowId: String let authProviderHost: String let additionalRequestHeaders: [String: String]? var onCompletion: (MicroblinkPlatformResult) -> Void var onClose: () -> Void init(workflowId: String, authProviderHost: String, additionalRequestHeaders: [String : String]? = nil, onCompletion: @escaping (MicroblinkPlatformResult) -> Void, onClose: @escaping () -> Void) { self.workflowId = workflowId self.authProviderHost = authProviderHost self.additionalRequestHeaders = additionalRequestHeaders self.onCompletion = onCompletion self.onClose = onClose } func makeUIViewController(context: Context) -> UIViewController { let consent = MicroblinkPlatformConsent( userId: user_id, isProcessingStoringAllowed: true, isTrainingAllowed: true, note: nil ) let serviceSettings = MicroblinkPlatformServiceSettings( workflowId: workflowId, authProviderHost: authProviderHost, consent: consent, additionalRequestHeaders: additionalRequestHeaders ) let microblinkPlatform = MicroblinkPlatformSDK( serviceSettings: serviceSettings, delegate: context.coordinator ) return microblinkPlatform.startSDK() } func updateUIViewController(_ uiViewController: UIViewController, context: Context) { } func makeCoordinator() -> Coordinator { Coordinator(onCompletion: onCompletion, onClose: onClose) } // Verification results are returned via `MicroblinkPlatformSDKDelegate`. class Coordinator: NSObject, MicroblinkPlatformSDKDelegate { var onCompletion: (MicroblinkPlatformResult) -> Void var onClose: () -> Void init(onCompletion: @escaping (MicroblinkPlatformResult) -> Void, onClose: @escaping () -> Void) { self.onCompletion = onCompletion self.onClose = onClose } func microblinkPlatformSDKDidFinish(viewController: UIViewController, result: MicroblinkPlatformResult) { // `MicroblinkPlatformResult` has: // - status enum that returns: accept, review, reject // - transactionId string viewController.dismiss(animated: true) { self.onCompletion(result) } } func microblinkPlatformSDKDidClose(viewController: UIViewController) { viewController.dismiss(animated: true) { self.onClose() } } } } ``` Last updated on Apr 16, 2026