├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── .gitignore ├── Advanced └── DocumentReader-Swift │ ├── DocumentReader-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── DocumentReader-Swift.xcscheme │ ├── DocumentReader-Swift.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ ├── DocumentReader-Swift │ ├── AdditionalScreens │ │ ├── BarcodeListViewController.swift │ │ ├── ChildViewController.swift │ │ ├── CustomRfidViewController.swift │ │ ├── GetValuesViewController.swift │ │ ├── HelpViewController.swift │ │ ├── TextFieldViewController.swift │ │ └── TextViewController.swift │ ├── AppDelegate.swift │ ├── Certificates.bundle │ │ └── icaopkd-002-ml-000131.ldif │ ├── CertificatesPA.bundle │ │ ├── CN=TEST CSCA FRA ECDSA256,C=FR.crt │ │ └── ds.cer │ ├── CertificatesTA.bundle │ │ ├── FRCVCA_CC.cvCert │ │ ├── FRCVCA_CC.pkcs8 │ │ ├── FRDV_CC.cvCert │ │ ├── FRDV_CC.pkcs8 │ │ ├── FRIS_CC.cvCert │ │ └── FRIS_CC.pkcs8 │ ├── DocumentReader-Swift.entitlements │ ├── DocumentReaderService.swift │ ├── Extensions │ │ ├── AVCaptureDevicePosition+Extensions.swift │ │ ├── BarcodeTypes+Extensions.swift │ │ ├── CaptureMode+Extensions.swift │ │ ├── DocFormat+Extensions.swift │ │ ├── DocReaderFrame+Extensions.swift │ │ ├── FieldType+Extensions.swift │ │ ├── LCID+Extensions.swift │ │ ├── MRZFormat+Extensions.swift │ │ ├── MeasureSystem+Extensions.swift │ │ ├── NSObject+ClassName.swift │ │ ├── RFIDAccessControlProcedureType+Extensions.swift │ │ └── ResultType+Extensions.swift │ ├── Info.plist │ ├── MainViewController.swift │ ├── OnlineProcessing │ │ └── OnlineProcessingViewController.swift │ ├── Resources │ │ ├── Assets.xcassets │ │ │ ├── 1.imageset │ │ │ │ ├── 1.png │ │ │ │ └── Contents.json │ │ │ ├── 2.imageset │ │ │ │ ├── 2.png │ │ │ │ └── Contents.json │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── big_close.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icon_138.png │ │ │ ├── camera.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── camera.png │ │ │ ├── close-icon.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon_138.png │ │ │ │ ├── icon_46.png │ │ │ │ └── icon_92.png │ │ │ ├── close.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── close.png │ │ │ ├── collapse.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── collapse.png │ │ │ ├── credit-card.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── credit-card.png │ │ │ ├── expand.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── expand.png │ │ │ ├── info │ │ │ │ ├── Contents.json │ │ │ │ ├── info_barcode.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── info_barcode.png │ │ │ │ ├── info_mrz.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── info_mrz.png │ │ │ │ └── info_viz.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── info_viz.png │ │ │ ├── light-off.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── light-off.png │ │ │ ├── light-on.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── light-on.png │ │ │ ├── palette.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── capture.png │ │ │ ├── rfid_icon.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── rfid_icon.png │ │ │ ├── status_not_ok.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── status_not_ok.png │ │ │ ├── status_ok.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── status_ok.png │ │ │ ├── status_undefined.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── status_undefined.png │ │ │ └── viewfinder.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── viewfinder.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── ir.bmp │ │ ├── uv.bmp │ │ └── white.bmp │ ├── ResultsViewController │ │ ├── Cells │ │ │ ├── CheckResultCell.swift │ │ │ ├── CheckResultCell.xib │ │ │ ├── ImageCell.swift │ │ │ ├── ImageCell.xib │ │ │ ├── TextCell.swift │ │ │ └── TextCell.xib │ │ └── ResultsViewController.swift │ ├── SettingsViewController │ │ ├── Cells │ │ │ ├── SettingsActionCell.swift │ │ │ ├── SettingsActionCell.xib │ │ │ ├── SettingsStepperCell.swift │ │ │ ├── SettingsStepperCell.xib │ │ │ ├── SettingsSwitchCell.swift │ │ │ └── SettingsSwitchCell.xib │ │ └── SettingsViewController.swift │ ├── Shared │ │ ├── ApplicationSettings.swift │ │ ├── Constants.swift │ │ ├── CustomUIModels.swift │ │ ├── Types.swift │ │ └── UserSettings.swift │ ├── buttons.json │ └── layer.json │ ├── Podfile │ └── README.md ├── BackendProcessing ├── BackendProcessing.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── BackendProcessing.xcworkspace │ └── contents.xcworkspacedata ├── BackendProcessing │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── nfc_logo.imageset │ │ │ ├── Contents.json │ │ │ ├── rfid_icon copy-1.png │ │ │ ├── rfid_icon copy-2.png │ │ │ └── rfid_icon.png │ ├── BackendProcessing.entitlements │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── Podfile └── README.md ├── Basic ├── DocumentReaderObjectiveC-sample │ ├── DocumentReaderObjectiveC-sample.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── DocumentReaderFullObjectiveC-sample.xcscheme │ ├── DocumentReaderObjectiveC-sample.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── DocumentReaderObjectiveC-sample │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── DocumentReaderFullObjectiveC-sample.plist │ │ ├── RGPreviewView.h │ │ ├── RGPreviewView.m │ │ ├── RGRecognizeImageViewController.h │ │ ├── RGRecognizeImageViewController.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── Podfile │ └── README.md ├── DocumentReaderRFIDSwiftUISample │ ├── DocumentReaderRFIDSwiftUISample.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── deposhe.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ ├── deposhe.xcuserdatad │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ │ └── serge.rylko.xcuserdatad │ │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ ├── DocumentReaderRFIDSwiftUISample.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ ├── deposhe.xcuserdatad │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── xcdebugger │ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── serge.rylko.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── DocumentReaderRFIDSwiftUISample │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── CameraView.swift │ │ ├── ContentView.swift │ │ ├── DocReader+Combine.swift │ │ ├── DocumentReaderRFIDSwiftUISample.entitlements │ │ ├── DocumentReaderRFIDSwiftUISampleApp.swift │ │ ├── Info.plist │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ ├── ReaderFacade.swift │ │ ├── ResultsView.swift │ │ └── UIApplication+Window.swift │ ├── Podfile │ └── README.md ├── DocumentReaderSwift-sample │ ├── DocumentReaderFullSwift-sample.entitlements │ ├── DocumentReaderSwift-sample.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── DocumentReaderFullSwift-sample.xcscheme │ │ │ └── Pod install.xcscheme │ ├── DocumentReaderSwift-sample.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ ├── DocumentReaderSwift-sample │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── nfc_logo.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── rfid_icon copy-1.png │ │ │ │ ├── rfid_icon copy-2.png │ │ │ │ └── rfid_icon.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── DocumentReaderFullSwift-sample-Info.plist │ │ ├── ViewController.swift │ │ └── test.pdf │ ├── Podfile │ └── README.md ├── DocumentReaderSwiftUI-sample │ ├── DocumentReaderSwiftUI-sample.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── DocumentReaderSwiftUI-sample.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── DocumentReaderSwiftUI-sample │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── CameraView.swift │ │ ├── DocReader+Combine.swift │ │ ├── DocumentReaderSwiftUI_sampleApp.swift │ │ ├── GalleryView.swift │ │ ├── ImagePicker.swift │ │ ├── MainView.swift │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ ├── ReaderFacade.swift │ │ └── ResultsView.swift │ ├── Podfile │ └── README.md └── README.md ├── BleDevice └── DocumentReaderSwiftBleLicense │ ├── DocumentReaderSwiftBleLicense.entitlements │ ├── DocumentReaderSwiftBleLicense.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── deposhe.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist │ ├── DocumentReaderSwiftBleLicense.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── deposhe.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ ├── DocumentReaderSwiftBleLicense │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── correct.imageset │ │ │ ├── Contents.json │ │ │ ├── correct.png │ │ │ ├── correct@2x.png │ │ │ └── correct@3x.png │ │ ├── incorrect.imageset │ │ │ ├── Contents.json │ │ │ ├── incorrect.png │ │ │ ├── incorrect@2x.png │ │ │ └── incorrect@3x.png │ │ └── portrait.imageset │ │ │ ├── Contents.json │ │ │ ├── portrait.png │ │ │ ├── portrait@2x.png │ │ │ └── portrait@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DocumentReaderSwiftBleLicense.entitlements │ ├── Info.plist │ ├── ScanViewController.swift │ └── ViewController.swift │ ├── Podfile │ └── README.md ├── CertificatePinning └── DocumentReaderCertificatePinning │ ├── DocumentReaderCertificatePinning.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── serge.rylko.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── serge.rylko.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist │ ├── DocumentReaderCertificatePinning.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── deposhe.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ ├── DocumentReaderCertificatePinning │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ ├── ViewController.swift │ └── mrz_sample.jpg │ ├── Podfile │ └── README.md ├── Database └── DocumentReaderDatabase-sample │ ├── DocumentReaderDatabase-sample.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── DocumentReaderDatabase-sample.xcscheme │ │ └── Pod install.xcscheme │ ├── DocumentReaderDatabase-sample.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ ├── DocumentReaderDatabase-sample │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── nfc_logo.imageset │ │ │ ├── Contents.json │ │ │ ├── rfid_icon copy-1.png │ │ │ ├── rfid_icon copy-2.png │ │ │ └── rfid_icon.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DocumentReaderDatabase-sample-Info.plist │ └── ViewController.swift │ ├── Podfile │ └── README.md ├── OnlineProcessing ├── OnlineProcessing-With-License-Swift │ ├── OnlineProcessing-With-License-Swift.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── OnlineProcessing-With-License-Swift.xcworkspace │ │ └── contents.xcworkspacedata │ ├── OnlineProcessing-With-License-Swift │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift │ ├── Podfile │ └── README.md ├── OnlineProcessing-Without-License-Swift │ ├── OnlineProcessing-Without-License-Swift.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── OnlineProcessing-Without-License-Swift.xcworkspace │ │ └── contents.xcworkspacedata │ ├── OnlineProcessing-Without-License-Swift │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AccentColor.colorset │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift │ ├── Podfile │ └── README.md └── README.md ├── README.md └── RfidCertificates └── RfidCertificates-Default-Swift ├── Podfile ├── README.md ├── RfidCertificates-Default-Swift.xcodeproj └── project.pbxproj ├── RfidCertificates-Default-Swift.xcworkspace └── contents.xcworkspacedata └── RfidCertificates-Default-Swift ├── AppDelegate.swift ├── Assets.xcassets ├── AccentColor.colorset │ └── Contents.json ├── AppIcon.appiconset │ └── Contents.json └── Contents.json ├── Base.lproj ├── LaunchScreen.storyboard └── Main.storyboard ├── Certificates.bundle └── PKDML.000219.ldif ├── Constants.swift ├── Info.plist ├── PKDCertificate+Extensions.swift ├── RfidCertificates-Default-Swift.entitlements └── ViewController.swift /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Submit a request 4 | url: https://support.regulaforensics.com/hc/requests/new?utm_source=github 5 | about: Submit any requests to Regula Support Team 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Pods/ 2 | Podfile.lock 3 | xcuserdata/ 4 | db.dat 5 | regula.license 6 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/AdditionalScreens/BarcodeListViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BarcodeListViewController.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 10.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import DocumentReader 11 | 12 | let kBarcodeListCellId = "BarcodeListCell" 13 | 14 | class BarcodeListViewController: UIViewController { 15 | @IBOutlet weak var tableView: UITableView! 16 | 17 | var allItems: [BarcodeType] = [] 18 | var selectedItems: [BarcodeType] = [] 19 | var completion: (([BarcodeType]?) -> Void)? 20 | 21 | override func viewDidLoad() { 22 | super.viewDidLoad() 23 | 24 | navigationItem.title = "Do barcodes" 25 | tableView.dataSource = self 26 | tableView.delegate = self 27 | } 28 | 29 | override func viewWillDisappear(_ animated: Bool) { 30 | super.viewWillDisappear(animated) 31 | 32 | let result = (selectedItems.count > 0) ? selectedItems : nil 33 | completion?(result) 34 | } 35 | } 36 | 37 | extension BarcodeListViewController: UITableViewDataSource, UITableViewDelegate { 38 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 39 | return allItems.count 40 | } 41 | 42 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 43 | let cell = tableView.dequeueReusableCell(withIdentifier: kBarcodeListCellId, for: indexPath) 44 | let item = allItems[indexPath.row] 45 | cell.textLabel?.text = item.stringValue 46 | let isSelected = selectedItems.contains(item) 47 | cell.accessoryType = isSelected ? .checkmark : .none 48 | return cell 49 | } 50 | 51 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 52 | let item = allItems[indexPath.row] 53 | if let index = selectedItems.firstIndex(of: item) { 54 | selectedItems.remove(at: index) 55 | } else { 56 | selectedItems.append(item) 57 | } 58 | tableView.reloadRows(at: [indexPath], with: .automatic) 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/AdditionalScreens/HelpViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HelpViewController.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 24.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HelpViewController: UIViewController { 12 | var infoImage: UIImage? = nil 13 | var infoText: String? = nil 14 | 15 | @IBOutlet weak var imageView: UIImageView! 16 | @IBOutlet weak var textView: UITextView! 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | 21 | imageView.image = infoImage 22 | textView.text = infoText 23 | } 24 | 25 | @IBAction func closeAction(_ sender: UIButton) { 26 | dismiss(animated: true, completion: nil) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/AdditionalScreens/TextViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextViewController.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 10.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TextViewController: UIViewController { 12 | @IBOutlet weak var textView: UITextView! 13 | 14 | var initalValue: String = "" 15 | var completion: ((String) -> Void)? 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | textView.text = initalValue 20 | textView.layer.borderWidth = 1 21 | } 22 | 23 | override func viewWillDisappear(_ animated: Bool) { 24 | super.viewWillDisappear(animated) 25 | completion?(textView.text ?? "") 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 2/3/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import DocumentReader 11 | 12 | @main 13 | class AppDelegate: UIResponder, UIApplicationDelegate { 14 | 15 | var window: UIWindow? 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 18 | 19 | return true 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesPA.bundle/CN=TEST CSCA FRA ECDSA256,C=FR.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesPA.bundle/CN=TEST CSCA FRA ECDSA256,C=FR.crt -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesPA.bundle/ds.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesPA.bundle/ds.cer -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRCVCA_CC.cvCert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRCVCA_CC.cvCert -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRCVCA_CC.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRCVCA_CC.pkcs8 -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRDV_CC.cvCert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRDV_CC.cvCert -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRDV_CC.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRDV_CC.pkcs8 -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRIS_CC.cvCert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRIS_CC.cvCert -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRIS_CC.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/CertificatesTA.bundle/FRIS_CC.pkcs8 -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/DocumentReader-Swift.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | NDEF 8 | TAG 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/DocumentReaderService.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocumentReaderService.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Pavel Kondrashkov on 03/12/2021. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | final class DocumentReaderService { 12 | enum State { 13 | case initializingAPI 14 | case completed 15 | case error(String) 16 | } 17 | 18 | static let shared = DocumentReaderService() 19 | private init() { } 20 | 21 | func deinitializeAPI() { 22 | DocReader.shared.deinitializeReader() 23 | } 24 | 25 | func initializeDatabaseAndAPI(progress: @escaping (State) -> Void) { 26 | guard let dataPath = Bundle.main.path(forResource: kRegulaLicenseFile, ofType: nil) else { 27 | progress(.error("Missing Licence File in Bundle")) 28 | return 29 | } 30 | guard let licenseData = try? Data(contentsOf: URL(fileURLWithPath: dataPath)) else { 31 | progress(.error("Missing Licence File in Bundle")) 32 | return 33 | } 34 | 35 | let config = DocReader.Config(license: licenseData) 36 | DocReader.shared.initializeReader(config: config, completion: { (success, error) in 37 | DispatchQueue.main.async { 38 | progress(.initializingAPI) 39 | if success { 40 | progress(.completed) 41 | } else { 42 | progress(.error("Initialization error: \(error?.localizedDescription ?? "nil")")) 43 | } 44 | } 45 | }) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/AVCaptureDevicePosition+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AVCaptureDevicePosition+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 11.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import AVFoundation 10 | 11 | extension AVCaptureDevice.Position { 12 | var stringValue: String { 13 | switch self { 14 | case .unspecified: 15 | return ".unspecified" 16 | case .back: 17 | return ".back" 18 | case .front: 19 | return ".front" 20 | @unknown default: 21 | return "" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/BarcodeTypes+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BarcodeTypes+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 9.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension BarcodeType { 12 | // BarcodeType enum in API written on Objective-C, we can't use CaseIterable 13 | static var allCases: [BarcodeType] { 14 | let first = BarcodeType.unknown.rawValue 15 | let last = BarcodeType.code11.rawValue 16 | var result: [BarcodeType] = [] 17 | for value in first...last { 18 | result.append(BarcodeType.init(rawValue: value)!) 19 | } 20 | return result 21 | } 22 | 23 | var stringValue: String { 24 | switch self { 25 | case .unknown: 26 | return ".unknown" 27 | case .code128: 28 | return ".code128" 29 | case .code39: 30 | return ".code39" 31 | case .EAN8: 32 | return ".EAN8" 33 | case .ITF: 34 | return ".ITF" 35 | case .PDF417: 36 | return ".PDF417" 37 | case .STF: 38 | return ".STF" 39 | case .MTF: 40 | return ".MTF" 41 | case .IATA: 42 | return ".IATA" 43 | case .CODABAR: 44 | return ".CODABAR" 45 | case .UPCA: 46 | return ".UPCA" 47 | case .CODE93: 48 | return ".CODE93" 49 | case .UPCE: 50 | return ".UPCE" 51 | case .EAN13: 52 | return ".EAN13" 53 | case .QRCODE: 54 | return ".QRCODE" 55 | case .AZTEC: 56 | return ".AZTEC" 57 | case .DATAMATRIX: 58 | return ".DATAMATRIX" 59 | case .ALL_1D: 60 | return ".ALL_1D" 61 | case .code11: 62 | return ".code11" 63 | @unknown default: 64 | return "" 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/CaptureMode+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CaptureMode+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 11.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension CaptureMode { 12 | var stringValue: String { 13 | switch self { 14 | case .auto: 15 | return ".auto" 16 | case .captureVideo: 17 | return ".captureVideo" 18 | case .captureFrame: 19 | return ".captureFrame" 20 | @unknown default: 21 | return "" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/DocFormat+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocumentReaderDocumentType+Extesions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Pavel Kondrashkov on 9/14/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension DocFormat: CaseIterable { 12 | public typealias AllCases = [DocFormat] 13 | 14 | public static var allCases: [DocFormat] = [ 15 | .ID1, 16 | .ID2, 17 | .ID3, 18 | .NON, 19 | .A4, 20 | .id3_x2, 21 | .id2_Turkey, 22 | .ID1_90, 23 | .ID1_180, 24 | .ID1_270, 25 | .ID2_180, 26 | .ID3_180, 27 | .custom, 28 | .photo, 29 | .flexible, 30 | ] 31 | } 32 | 33 | extension DocFormat: LosslessStringConvertible { 34 | public var description: String { 35 | switch self { 36 | case .ID1: return "ID1" 37 | case .ID2: return "ID2" 38 | case .ID3: return "ID3" 39 | case .NON: return "NON" 40 | case .A4: return "A4" 41 | case .id3_x2: return "id3_x2" 42 | case .id2_Turkey: return "id2_Turkey" 43 | case .ID1_90: return "ID1_90" 44 | case .ID1_180: return "ID1_180" 45 | case .ID1_270: return "ID1_270" 46 | case .ID2_180: return "ID2_180" 47 | case .ID3_180: return "ID3_180" 48 | case .custom: return "custom" 49 | case .photo: return "photo" 50 | case .flexible: return "flexible" 51 | case .unknown: return "unknown" 52 | @unknown default: 53 | fatalError() 54 | } 55 | } 56 | 57 | public init?(_ description: String) { 58 | guard let match = Self.allCases.first(where: { $0.description == description }) else { 59 | return nil 60 | } 61 | self.init(rawValue: match.rawValue) 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/DocReaderFrame+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocReaderFrame+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 12.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension DocReaderFrame { 12 | var stringValue: String { 13 | switch self { 14 | case .none: 15 | return ".none" 16 | case .scenarioDefault: 17 | return ".scenarioDefault" 18 | case .max: 19 | return ".max" 20 | case .document: 21 | return ".document" 22 | @unknown default: 23 | return "" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/MRZFormat+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MRZFormat+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Pavel Kondrashkov on 9/21/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension MRZFormat: CaseIterable { 12 | public typealias AllCases = [MRZFormat] 13 | 14 | public static var allCases: [MRZFormat] = [ 15 | .IDL, 16 | .ID1, 17 | .ID2, 18 | .ID3, 19 | .CAN, 20 | .ID1_2_30, 21 | ] 22 | } 23 | 24 | extension MRZFormat: LosslessStringConvertible { 25 | public var description: String { 26 | switch self { 27 | case .IDL: return "IDL" 28 | case .ID1: return "ID1" 29 | case .ID2: return "ID2" 30 | case .ID3: return "ID3" 31 | case .CAN: return "CAN" 32 | case .ID1_2_30: return "ID1_2_30" 33 | @unknown default: 34 | fatalError() 35 | } 36 | } 37 | 38 | public init?(_ description: String) { 39 | guard let match = Self.allCases.first(where: { $0.description == description }) else { 40 | return nil 41 | } 42 | self.init(rawValue: match.rawValue) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/MeasureSystem+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeasureSystem+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 11.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension MeasureSystem { 12 | var stringValue: String { 13 | switch self { 14 | case .metric: 15 | return ".metric" 16 | case .imperial: 17 | return ".imperial" 18 | @unknown default: 19 | return "" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/NSObject+ClassName.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+ClassName.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Pavel Kondrashkov on 9/13/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol HasClassName { 12 | static var className: String { get } 13 | var className: String { get } 14 | } 15 | 16 | extension HasClassName { 17 | static var className: String { 18 | String(describing: self) 19 | } 20 | 21 | var className: String { 22 | type(of: self).className 23 | } 24 | } 25 | 26 | extension NSObject: HasClassName {} 27 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Extensions/RFIDAccessControlProcedureType+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RFIDAccessControlProcedureType+Extensions.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 24.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension RFIDAccessControlProcedureType { 12 | var stringValue: String { 13 | switch self { 14 | case .undefined: 15 | return "Undefined" 16 | case .bac: 17 | return "BAC" 18 | case .pace: 19 | return "PACE" 20 | case .ca: 21 | return "CA" 22 | case .ta: 23 | return "TA" 24 | case .aa: 25 | return "AA" 26 | case .ri: 27 | return "RI" 28 | case .cardInfo: 29 | return "CARD INFO" 30 | @unknown default: 31 | return "" 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/1.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/1.imageset/1.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "1.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/2.imageset/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/2.imageset/2.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "2.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/big_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_138.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/big_close.imageset/icon_138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/big_close.imageset/icon_138.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/camera.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "camera.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/camera.imageset/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/camera.imageset/camera.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_46.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "icon_92.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "icon_138.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_138.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_46.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close-icon.imageset/icon_92.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "close.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close.imageset/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/close.imageset/close.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/collapse.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "collapse.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/collapse.imageset/collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/collapse.imageset/collapse.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/credit-card.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "credit-card.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/credit-card.imageset/credit-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/credit-card.imageset/credit-card.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/expand.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "expand.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/expand.imageset/expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/expand.imageset/expand.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_barcode.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "info_barcode.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_barcode.imageset/info_barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_barcode.imageset/info_barcode.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_mrz.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "info_mrz.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_mrz.imageset/info_mrz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_mrz.imageset/info_mrz.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_viz.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "info_viz.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_viz.imageset/info_viz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/info/info_viz.imageset/info_viz.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "light-off.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-off.imageset/light-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-off.imageset/light-off.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "light-on.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-on.imageset/light-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/light-on.imageset/light-on.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/palette.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "capture.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/palette.imageset/capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/palette.imageset/capture.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/rfid_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "rfid_icon.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/rfid_icon.imageset/rfid_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/rfid_icon.imageset/rfid_icon.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_not_ok.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "status_not_ok.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_not_ok.imageset/status_not_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_not_ok.imageset/status_not_ok.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_ok.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "status_ok.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_ok.imageset/status_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_ok.imageset/status_ok.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_undefined.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "status_undefined.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_undefined.imageset/status_undefined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/status_undefined.imageset/status_undefined.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/viewfinder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "viewfinder.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/viewfinder.imageset/viewfinder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Assets.xcassets/viewfinder.imageset/viewfinder.png -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/ir.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/ir.bmp -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/uv.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/uv.bmp -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/white.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Advanced/DocumentReader-Swift/DocumentReader-Swift/Resources/white.bmp -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/ResultsViewController/Cells/CheckResultCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CheckResultCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 11.01.24. 6 | // Copyright © 2024 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CheckResultCell: UITableViewCell { 12 | @IBOutlet weak var resultLabel: UILabel! 13 | } 14 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/ResultsViewController/Cells/ImageCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImageCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 2/4/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ImageCell: UITableViewCell { 12 | @IBOutlet weak var titleLabel: UILabel! 13 | @IBOutlet weak var rawImageView: UIImageView! 14 | } 15 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/ResultsViewController/Cells/TextCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 2/4/21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TextCell: UITableViewCell { 12 | @IBOutlet weak var titleLabel: UILabel! 13 | @IBOutlet weak var valueLabel: UILabel! 14 | @IBOutlet weak var lcidLabel: UILabel! 15 | @IBOutlet weak var pageIndexLabel: UILabel! 16 | } 17 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/SettingsViewController/Cells/SettingsActionCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsActionCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 10.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SettingsActionCell: UITableViewCell { 12 | @IBOutlet weak var titleLabel: UILabel! 13 | @IBOutlet weak var valueLabel: UILabel! 14 | 15 | var onPressAction: ((SettingsActionCell) -> Void)? 16 | 17 | override func awakeFromNib() { 18 | super.awakeFromNib() 19 | let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapGestureAction(_:))) 20 | addGestureRecognizer(tapGesture) 21 | } 22 | 23 | func configure(title: String, value: String) { 24 | titleLabel.text = title 25 | valueLabel.text = value 26 | } 27 | 28 | @objc func tapGestureAction(_ sender: UITapGestureRecognizer) { 29 | onPressAction?(self) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/SettingsViewController/Cells/SettingsStepperCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsStepperCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 9.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol SettingsStepperCellDelegate: AnyObject { 12 | func valueChangedFor(_ item: SettingsIntItem?, _ value: Int) -> Void 13 | } 14 | 15 | class SettingsStepperCell: UITableViewCell { 16 | @IBOutlet weak var titleLabel: UILabel! 17 | @IBOutlet weak var stepperControl: UIStepper! 18 | @IBOutlet weak var valueLabel: UILabel! 19 | 20 | weak var delegate: SettingsStepperCellDelegate? = nil 21 | var item: SettingsIntItem? = nil { 22 | didSet { 23 | guard let item = item else { return } 24 | titleLabel.text = item.title 25 | stepperControl.value = Double(item.getter()) 26 | valueLabel.text = String(format: item.format, arguments: [item.getter()]) 27 | } 28 | } 29 | 30 | override func awakeFromNib() { 31 | super.awakeFromNib() 32 | stepperControl.addTarget(self, action: #selector(stepperAction(_:)), 33 | for: .valueChanged) 34 | } 35 | 36 | @objc func stepperAction(_ sender: UIStepper!) { 37 | guard let item = item else { return } 38 | delegate?.valueChangedFor(item, Int(sender.value)) 39 | valueLabel.text = String(format: item.format, arguments: [item.getter()]) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/SettingsViewController/Cells/SettingsSwitchCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsSwitchCell.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 9.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol SettingsSwitchCellDelegate: AnyObject { 12 | func stateChangedFor(_ item: SettingsBoolItem?, _ isOn: Bool) -> Void 13 | } 14 | 15 | class SettingsSwitchCell: UITableViewCell { 16 | @IBOutlet weak var titleLabel: UILabel! 17 | @IBOutlet weak var switchControl: UISwitch! 18 | 19 | weak var delegate: SettingsSwitchCellDelegate? = nil 20 | var item: SettingsBoolItem? = nil { 21 | didSet { 22 | guard let item = item else { return } 23 | titleLabel.text = item.title 24 | switchControl.setOn(item.getter(), animated: true) 25 | } 26 | } 27 | 28 | override func awakeFromNib() { 29 | super.awakeFromNib() 30 | switchControl.addTarget(self, action: #selector(switchAction(_:)), 31 | for: .valueChanged) 32 | } 33 | 34 | @objc func switchAction(_ sender: UISwitch!) { 35 | delegate?.stateChangedFor(item, sender.isOn) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Shared/ApplicationSettings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ApplicationSettings.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 9.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import DocumentReader 11 | 12 | // Helper class for holding settings 13 | class ApplicationSettings { 14 | static var shared: ApplicationSettings = ApplicationSettings() 15 | 16 | var isRfidEnabled: Bool = false 17 | var useCustomRfidController: Bool = false 18 | 19 | var functionality: Functionality = Functionality() 20 | } 21 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Shared/Constants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Constants.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 10.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let kRegulaLicenseFile = "regula.license" 12 | let kRegulaDatabaseId = "Full" 13 | 14 | let kMainStoryboardId = "Main" 15 | 16 | let kActionTableViewCellId = "ActionTableViewCell" 17 | let kCustomRfidViewController = "CustomRfidViewController" 18 | let kChildViewController = "ChildViewController" 19 | let kResultsViewControllerId = "ResultsViewController" 20 | let kSettingsViewControllerId = "SettingsViewController" 21 | let kHelpViewControllerId = "HelpViewController" 22 | let kBarcodeListViewControllerId = "BarcodeListViewController" 23 | let kTextFieldViewControllerId = "TextFieldViewController" 24 | let kTextViewControllerId = "TextViewController" 25 | let kGetValuesViewControllerId = "GetValuesViewController" 26 | 27 | let kTextCellId = "TextCell" 28 | let kImageCellId = "ImageCell" 29 | let kComparisonCellId = "ComparisonCell" 30 | let kFieldCellId = "FieldCell" 31 | let kRfidStatusCellId = "RfidStatusCell" 32 | let kCheckResultCellId = "CheckResultCell" 33 | 34 | let kInfoTextMrz = """ 35 | MRZ 36 | 37 | The Machine Readable Zone (MRZ) provides a set of essential data elements in a format, standardized for each type of a Machine Readable Travel Document (MRTD), that can be used by all receiving States regardless of their national script or customs. The data in the MRZ are formatted in such a way as to be readable by machines with standard capability worldwide. 38 | """ 39 | 40 | let kInfoTextViz = """ 41 | VIZ 42 | 43 | The Visual Inspection Zone (VIZ) of a Machine Readable Travel Document (MRTD) comprises the mandatory and optional data elements designed for visual inspection. 44 | """ 45 | 46 | let kInfoTextBarcode = """ 47 | Barcode 48 | 49 | Barcode is a means of storing data as a pattern of lines or dots. 50 | """ 51 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Shared/CustomUIModels.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomUIModels.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 20.05.22. 6 | // Copyright © 2022 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct CustomUILayerModel: Codable { 12 | var objects: [Object] 13 | } 14 | 15 | struct Object: Codable { 16 | var label: Label 17 | } 18 | 19 | struct Label: Codable { 20 | var text, fontStyle, fontColor: String 21 | let fontSize: Int 22 | let alignment, background: String 23 | let borderRadius: Int 24 | let padding: Padding 25 | var position: Position 26 | let margin: Margin 27 | } 28 | 29 | struct Margin: Codable { 30 | let start, end: Int 31 | } 32 | 33 | struct Padding: Codable { 34 | let start, end, top, bottom: Int 35 | } 36 | 37 | struct Position: Codable { 38 | var v: Double 39 | } 40 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/DocumentReader-Swift/Shared/UserSettings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserSettings.swift 3 | // DocumentReader-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 9.02.21. 6 | // Copyright © 2021 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import DocumentReader 11 | 12 | // Helper class for holding settings 13 | class ApplicationSettings { 14 | static var shared: ApplicationSettings = ApplicationSettings() 15 | 16 | var isDataEncryptionEnabled: Bool = false 17 | var isRfidEnabled: Bool = false 18 | var useCustomRfidController: Bool = false 19 | 20 | var functionality: Functionality = DocReader.shared.functionality 21 | } 22 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '13.0' 4 | use_frameworks! 5 | 6 | target 'DocumentReader-Swift' do 7 | pod 'DocumentReader', '~> 7.7.0' 8 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 9 | end 10 | -------------------------------------------------------------------------------- /Advanced/DocumentReader-Swift/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Document Reader SDK Advanced Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK configuration and customization options. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git` 21 | 2. Open the `DocumentReader-Swift` project in an IDE. 22 | 3. Run pods `pod install`. 23 | 4. Add license and database files to the target: 24 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - Copy the license file to the project: `Advanced/DocumentReader-Swift/DocumentReader-Swift/` 26 | - Copy the database file `db.dat` from [Regula Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `Advanced/DocumentReader-Swift/DocumentReader-Swift/` 27 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 28 | 29 | ## Documentation 30 | 31 | Document Reader SDK Mobile Documentation 32 | 33 | ## Demo Application 34 | 35 | Regula Document Reader iOS Demo Application in the App Store 36 | 37 | ## Technical Support 38 | 39 | To submit a request to the Support Team, visit Regula Help Center. 40 | 41 | ## Business Enquiries 42 | 43 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // BackendProcessing 4 | // 5 | // Created by Dmitry Evglevsky on 20.02.24. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "rfid_icon copy-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "rfid_icon.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "rfid_icon copy-1.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BackendProcessing/BackendProcessing/Assets.xcassets/nfc_logo.imageset/rfid_icon.png -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/BackendProcessing.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | TAG 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /BackendProcessing/BackendProcessing/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIApplicationSceneManifest 6 | 7 | UIApplicationSupportsMultipleScenes 8 | 9 | 10 | com.apple.developer.nfc.readersession.iso7816.select-identifiers 11 | 12 | A0000002471001 13 | E80704007F00070302 14 | A000000167455349474E 15 | A0000002480100 16 | A0000002480200 17 | A0000002480300 18 | A00000045645444C2D3031 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /BackendProcessing/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '13.0' 2 | use_frameworks! 3 | 4 | target 'BackendProcessing' do 5 | pod 'DocumentReader', '~> 7.7.0' 6 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 7 | end 8 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DocumentReaderObjectiveC-sample 4 | // 5 | // Created by Dmitry Smolyakov on 3/19/18. 6 | // Copyright © 2018 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // DocumentReaderObjectiveC-sample 4 | // 5 | // Created by Dmitry Smolyakov on 3/19/18. 6 | // Copyright © 2018 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | 24 | - (void)applicationWillResignActive:(UIApplication *)application { 25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 27 | } 28 | 29 | 30 | - (void)applicationDidEnterBackground:(UIApplication *)application { 31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 33 | } 34 | 35 | 36 | - (void)applicationWillEnterForeground:(UIApplication *)application { 37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 38 | } 39 | 40 | 41 | - (void)applicationDidBecomeActive:(UIApplication *)application { 42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 43 | } 44 | 45 | 46 | - (void)applicationWillTerminate:(UIApplication *)application { 47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 48 | } 49 | 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/DocumentReaderFullObjectiveC-sample.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | NSCameraUsageDescription 24 | Capture photo 25 | NSPhotoLibraryUsageDescription 26 | Get image from gallery 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/RGPreviewView.h: -------------------------------------------------------------------------------- 1 | // 2 | // RGPreviewView.h 3 | // DocumentReaderExample 4 | // 5 | // Created by Dmitry Smolyakov on 2/13/20. 6 | // Copyright © 2020 Regula. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface RGPreviewView : UIView 13 | 14 | @property(nonatomic,readonly,strong) AVCaptureVideoPreviewLayer *videoPreviewLayer; 15 | @property(nonatomic,readwrite,strong) AVCaptureSession *session; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/RGPreviewView.m: -------------------------------------------------------------------------------- 1 | // 2 | // RGPreviewView.m 3 | // DocumentReaderExample 4 | // 5 | // Created by Dmitry Smolyakov on 2/13/20. 6 | // Copyright © 2020 Regula. All rights reserved. 7 | // 8 | 9 | #import "RGPreviewView.h" 10 | 11 | @implementation RGPreviewView 12 | 13 | - (instancetype)init 14 | { 15 | self = [super init]; 16 | if (self) { 17 | _videoPreviewLayer = (AVCaptureVideoPreviewLayer *) self.layer; 18 | } 19 | return self; 20 | } 21 | 22 | - (void)setSession:(AVCaptureSession *)session { 23 | self.videoPreviewLayer.session = session; 24 | } 25 | 26 | - (AVCaptureSession *)session { 27 | return self.videoPreviewLayer.session; 28 | } 29 | 30 | + (Class)layerClass { 31 | return [AVCaptureVideoPreviewLayer self]; 32 | } 33 | 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/RGRecognizeImageViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RGRecognizeImageViewController.h 3 | // DocumentReaderExample 4 | // 5 | // Created by Dmitry Smolyakov on 7/20/20. 6 | // Copyright © 2020 Regula. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RGPreviewView.h" 11 | @import DocumentReader; 12 | 13 | typedef NS_ENUM(NSInteger, RGSessionSetupResult) { 14 | RGSessionSetupResultSuccess, 15 | RGSessionSetupResultNotAuthorized, 16 | RGSessionSetupResultConfigurationFailed 17 | } NS_SWIFT_NAME(SessionSetupResult); 18 | 19 | @class RGRecognizeImageViewController; 20 | 21 | @protocol RGRecognizeImageViewController 22 | 23 | - (void)recognizeDidFinishedWith:(RGLDocumentReaderResults * _Nullable)results 24 | viewController:(RGRecognizeImageViewController * _Nonnull)viewController; 25 | 26 | @end 27 | 28 | @interface RGRecognizeImageViewController : UIViewController 29 | 30 | @property(nonatomic, weak, nullable) id delegate; 31 | 32 | @property(nonatomic, strong, nullable) NSString *selectedScenario; 33 | 34 | @end 35 | 36 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // DocumentReaderObjectiveC-sample 4 | // 5 | // Created by Dmitry Smolyakov on 3/19/18. 6 | // Copyright © 2018 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DocumentReaderObjectiveC-sample 4 | // 5 | // Created by Dmitry Smolyakov on 3/19/18. 6 | // Copyright © 2018 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '13.0' 4 | 5 | target 'DocumentReaderFullObjectiveC-sample' do 6 | pod 'DocumentReader', '~> 7.7.0' 7 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 8 | end 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderObjectiveC-sample/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Basic Objective-C Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Objective-C, demonstrating the Document Reader SDK basic functionality. UI elements are not included. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git`. 21 | 2. Open the `DocumentReaderObjectiveC-sample` project in an IDE. 22 | 3. Run pods `pod install`. 23 | 4. Add license and database files to the target: 24 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - Copy the license file to the project: `Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/`. 26 | - Copy the database file `db.dat` from [Regula Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `Basic/DocumentReaderObjectiveC-sample/DocumentReaderObjectiveC-sample/`. 27 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 28 | 29 | ## Documentation 30 | 31 | Document Reader SDK Mobile Documentation 32 | 33 | ## Demo Application 34 | 35 | Regula Document Reader iOS Demo Application in the App Store 36 | 37 | ## Technical Support 38 | 39 | To submit a request to the Support Team, visit Regula Help Center. 40 | 41 | ## Business Enquiries 42 | 43 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/project.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/project.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/xcuserdata/deposhe.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DocumentReaderRFIDSwiftUISample.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcodeproj/xcuserdata/serge.rylko.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DocumentReaderRFIDSwiftUISample.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 2 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/xcuserdata/serge.rylko.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.xcworkspace/xcuserdata/serge.rylko.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/CameraView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CameraView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 12.09.22. 6 | // 7 | 8 | import SwiftUI 9 | import DocumentReader 10 | 11 | struct CameraView: View { 12 | let reader: ReaderFacade 13 | 14 | @Environment(\.presentationMode) var presentationMode 15 | 16 | var body: some View { 17 | ZStack { 18 | Color.black.edgesIgnoringSafeArea(.all) 19 | CameraViewController(reader: reader) 20 | } 21 | } 22 | } 23 | 24 | struct CameraViewController: UIViewControllerRepresentable { 25 | typealias UIViewControllerType = UIViewController 26 | let reader: ReaderFacade 27 | 28 | func makeUIViewController(context: Context) -> UIViewController { 29 | reader.getCameraController() 30 | } 31 | 32 | func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} 33 | } 34 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // DocumentReaderRFIDSwiftUISample 4 | // 5 | // Created by Serge Rylko on 25.01.24. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct ContentView: View { 11 | 12 | @ObservedObject 13 | var reader: ReaderFacade 14 | 15 | @State 16 | private var isScannerPresented = false 17 | @State 18 | private var isGalleryPresented = false 19 | 20 | var body: some View { 21 | NavigationView { 22 | if reader.isInitialized && !reader.isProcessing { 23 | VStack { 24 | Picker("Scenarios", selection: $reader.selectedScenario) { 25 | ForEach(reader.availableScenarios, id: \.self) { 26 | Text($0) 27 | } 28 | } 29 | .pickerStyle(WheelPickerStyle()) 30 | HStack(spacing: 120) { 31 | Button("Camera") { 32 | isScannerPresented.toggle() 33 | } 34 | .padding(10) 35 | .background(Color.accentColor) 36 | .foregroundColor(.white) 37 | .cornerRadius(8) 38 | .fullScreenCover(isPresented: $isScannerPresented, content: { 39 | CameraView(reader: reader) 40 | }) 41 | } 42 | NavigationLink("Results", isActive: $reader.areResultsReady) { 43 | ResultsView(reader: reader) 44 | }.hidden() 45 | } 46 | } else { 47 | Text("Initializing ...") 48 | } 49 | }.navigationViewStyle(.stack) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/DocReader+Combine.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocReader+Combine.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Deposhe on 14.09.22. 6 | // 7 | 8 | import Foundation 9 | import Combine 10 | import DocumentReader 11 | 12 | enum RFIDError: Error { 13 | case cancel 14 | case timeout 15 | } 16 | 17 | extension DocReader { 18 | 19 | func initializeReader(config: DocReader.Config) -> AnyPublisher { 20 | Future { promise in 21 | DocReader.shared.initializeReader(config: config) { success, error in 22 | if let error = error { 23 | promise(.failure(error)) 24 | } else { 25 | promise(.success(success)) 26 | } 27 | } 28 | }.eraseToAnyPublisher() 29 | } 30 | 31 | // Read RFID without ReaderUI 32 | func readRFID() -> AnyPublisher { 33 | Deferred { 34 | Future { promise in 35 | DocReader.shared.readRFID(nil) { action, results, error, codes in 36 | if let error = error { 37 | promise(.failure(error)) 38 | } else if let results = results { 39 | promise(.success(results)) 40 | } 41 | } 42 | } 43 | }.eraseToAnyPublisher() 44 | } 45 | 46 | // Read RFID with ReaderUI 47 | func readRFIDController(presenter: UIViewController) -> AnyPublisher { 48 | Deferred { 49 | Future { promise in 50 | DocReader.shared.startRFIDReader(fromPresenter: presenter) { action, results, error in 51 | if let error = error { 52 | promise(.failure(error)) 53 | } else if let results = results { 54 | promise(.success(results)) 55 | } else if action == .cancel { 56 | promise(.failure(RFIDError.cancel)) 57 | } else if action == .processTimeout { 58 | promise(.failure(RFIDError.timeout)) 59 | } 60 | } 61 | } 62 | }.eraseToAnyPublisher() 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | NDEF 8 | TAG 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISampleApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocumentReaderRFIDSwiftUISampleApp.swift 3 | // DocumentReaderRFIDSwiftUISample 4 | // 5 | // Created by Serge Rylko on 25.01.24. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct DocumentReaderRFIDSwiftUISampleApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView(reader: ReaderFacade()) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.iso7816.select-identifiers 6 | 7 | 8 | A0000002471001 9 | E80704007F00070302 10 | A000000167455349474E 11 | A0000002480100 12 | A0000002480200 13 | A0000002480300 14 | A00000045645444C2D3031 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/ResultsView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ResultsView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 12.09.22. 6 | // 7 | 8 | import SwiftUI 9 | import DocumentReader 10 | 11 | struct ResultsView: View { 12 | let reader: ReaderFacade 13 | 14 | @State 15 | private var pageIndex = 0 16 | 17 | var body: some View { 18 | Picker("Results Page", selection: $pageIndex) { 19 | Text("Text").tag(0) 20 | Text("Graphics").tag(1) 21 | } 22 | .pickerStyle(SegmentedPickerStyle()) 23 | 24 | if pageIndex == 0 { 25 | List(reader.lastTextResultFields, id: \.fieldName) { field in 26 | HStack { 27 | Text(field.fieldName + ":").fontWeight(.light).foregroundColor(Color.secondary) 28 | Text(field.values.first?.value ?? "").fontWeight(.light).foregroundColor(Color.primary) 29 | } 30 | } 31 | } else { 32 | GeometryReader { geo in 33 | List(reader.lastGraphicResultFields, id: \.hash) { field in 34 | VStack { 35 | Text(field.fieldName) 36 | .fontWeight(.light) 37 | .foregroundColor(Color.secondary) 38 | Image(uiImage: field.value) 39 | .resizable() 40 | .scaledToFit() 41 | .frame(width: geo.size.width) 42 | } 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/UIApplication+Window.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+Window.swift 3 | // DocumentReaderRFIDSwiftUISample 4 | // 5 | // Created by Serge Rylko on 31.01.24. 6 | // 7 | 8 | import Foundation 9 | import UIKit 10 | 11 | extension UIApplication { 12 | var firstKeyWindow: UIWindow? { 13 | UIApplication.shared.connectedScenes 14 | .compactMap { $0 as? UIWindowScene } 15 | .filter { $0.activationState == .foregroundActive } 16 | .first?.windows 17 | .first(where: \.isKeyWindow) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | platform :ios, '13.0' 3 | 4 | target 'DocumentReaderRFIDSwiftUISample' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for DocumentReaderSwiftUISample 9 | pod 'DocumentReader', '~> 7.7.0' 10 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 11 | end -------------------------------------------------------------------------------- /Basic/DocumentReaderRFIDSwiftUISample/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Basic Swift RFID UI Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK capabilities of reading RFID chip. Also includes the sample UI implementation. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git`. 21 | 2. Open the `DocumentReaderRFIDSwiftUISample` project in an IDE. 22 | 3. Run pods `pod install`. 23 | 4. Add license and database files to the target: 24 | - visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - copy the license file to the project: `Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/`. 26 | - copy the database file `db.dat` from [Regula Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `Basic/DocumentReaderRFIDSwiftUISample/DocumentReaderRFIDSwiftUISample/`. 27 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 28 | 29 | ## Documentation 30 | 31 | Document Reader SDK Mobile Documentation 32 | 33 | ## Demo Application 34 | 35 | Regula Document Reader iOS Demo Application in the App Store 36 | 37 | ## Technical Support 38 | 39 | To submit a request to the Support Team, visit Regula Help Center. 40 | 41 | ## Business Enquiries 42 | 43 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderFullSwift-sample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | NDEF 8 | TAG 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DocumentReaderSwift-sample 4 | // 5 | // Created by Dmitry Smolyakov on 7/8/17. 6 | // Copyright © 2017 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | 21 | func applicationWillResignActive(_ application: UIApplication) { 22 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 23 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 24 | } 25 | 26 | func applicationDidEnterBackground(_ application: UIApplication) { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | func applicationWillEnterForeground(_ application: UIApplication) { 32 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 33 | } 34 | 35 | func applicationDidBecomeActive(_ application: UIApplication) { 36 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 37 | } 38 | 39 | func applicationWillTerminate(_ application: UIApplication) { 40 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 41 | } 42 | 43 | 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "rfid_icon copy-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "rfid_icon.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "rfid_icon copy-1.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon.png -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/DocumentReaderFullSwift-sample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | DocReader 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NFCReaderUsageDescription 26 | NFC tag to read NDEF messages 27 | NSBluetoothAlwaysUsageDescription 28 | Regula 1120 Device 29 | NSCameraUsageDescription 30 | To obtain images from the camera 31 | NSPhotoLibraryUsageDescription 32 | To obtain images from the gallery 33 | UILaunchStoryboardName 34 | LaunchScreen 35 | UIMainStoryboardFile 36 | Main 37 | UIRequiredDeviceCapabilities 38 | 39 | armv7 40 | 41 | UISupportedInterfaceOrientations 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationLandscapeLeft 45 | UIInterfaceOrientationLandscapeRight 46 | 47 | UISupportedInterfaceOrientations~ipad 48 | 49 | UIInterfaceOrientationPortrait 50 | UIInterfaceOrientationLandscapeLeft 51 | UIInterfaceOrientationLandscapeRight 52 | 53 | com.apple.developer.nfc.readersession.iso7816.select-identifiers 54 | 55 | A0000002471001 56 | E80704007F00070302 57 | A000000167455349474E 58 | A0000002480100 59 | A0000002480200 60 | A0000002480300 61 | A00000045645444C2D3031 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/test.pdf -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '13.0' 4 | use_frameworks! 5 | 6 | target 'DocumentReaderFullSwift-sample' do 7 | pod 'DocumentReader', '~> 7.7.0' 8 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 9 | end 10 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwift-sample/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Basic Swift Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Contacts](#technical-contacts) 12 | * [Business Contacts](#business-contacts) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK basic functionality. UI elements are not included. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git`. 21 | 2. Open the `DocumentReaderSwift-sample` project in an IDE. 22 | 3. Run pods `pod install`. 23 | 4. Add license and database files to the target: 24 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - Copy the license file to the project: `Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/` 26 | - Copy the database file `db.dat` from [Regula Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `Basic/DocumentReaderSwift-sample/DocumentReaderSwift-sample/` 27 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 28 | 29 | ## Documentation 30 | 31 | Document Reader SDK Mobile Documentation 32 | 33 | ## Demo Application 34 | 35 | Regula Document Reader iOS Demo Application in the App Store 36 | 37 | ## Technical Contacts 38 | 39 | To submit a request to Technical Support, visit Regula Help Center. 40 | 41 | ## Business Contacts 42 | 43 | To discuss business purposes or purchase the license, fill the Enquiry Form. -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/CameraView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CameraView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 12.09.22. 6 | // 7 | 8 | import SwiftUI 9 | import DocumentReader 10 | 11 | struct CameraView: View { 12 | let reader: ReaderFacade 13 | 14 | @Environment(\.presentationMode) var presentationMode 15 | 16 | var body: some View { 17 | ZStack { 18 | Color.black.edgesIgnoringSafeArea(.all) 19 | CameraViewController(reader: reader) 20 | VStack { 21 | Text("Custom Text Over Scanner") 22 | .foregroundColor(Color.green) 23 | .font(.system(size: 20)) 24 | .padding(EdgeInsets(top: 120, leading: 0, bottom: 0, trailing: 0)) 25 | Spacer() 26 | } 27 | } 28 | } 29 | } 30 | 31 | struct CameraViewController: UIViewControllerRepresentable { 32 | typealias UIViewControllerType = UIViewController 33 | let reader: ReaderFacade 34 | 35 | func makeUIViewController(context: Context) -> UIViewController { 36 | reader.getCameraController() 37 | } 38 | 39 | func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} 40 | } 41 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/DocReader+Combine.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocReader+Combine.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Deposhe on 14.09.22. 6 | // 7 | 8 | import Foundation 9 | import Combine 10 | import DocumentReader 11 | 12 | extension DocReader { 13 | 14 | func initializeReader(config: DocReader.Config) -> AnyPublisher { 15 | Future { promise in 16 | DocReader.shared.initializeReader(config: config) { success, error in 17 | if let error = error { 18 | promise(.failure(error)) 19 | } else { 20 | promise(.success(success)) 21 | } 22 | } 23 | }.eraseToAnyPublisher() 24 | } 25 | 26 | func recognize(config: DocReader.RecognizeConfig) -> AnyPublisher { 27 | Deferred { 28 | Future { promise in 29 | DocReader.shared.recognize(config: config) { _, results, error in 30 | if let error = error { 31 | promise(.failure(error)) 32 | } else if let results = results { 33 | promise(.success(results)) 34 | } 35 | } 36 | } 37 | }.eraseToAnyPublisher() 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI_sampleApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DocumentReaderSwiftUI_sampleApp.swift 3 | // DocumentReaderSwiftUI-sample 4 | // 5 | // Created by Dmitry Evglevsky on 13.09.22. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct DocumentReaderSwiftUI_sampleApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | MainView(reader: ReaderFacade()) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/GalleryView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GalleryView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 13.09.22. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct GalleryView: View { 11 | let reader: ReaderFacade 12 | 13 | @Environment(\.presentationMode) var presentationMode 14 | 15 | var body: some View { 16 | GalleryViewController(reader: reader) 17 | } 18 | } 19 | 20 | struct GalleryViewController: UIViewControllerRepresentable { 21 | typealias UIViewControllerType = UIViewController 22 | let reader: ReaderFacade 23 | 24 | func makeUIViewController(context: Context) -> UIViewController { 25 | reader.getGalleryController() 26 | } 27 | 28 | func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} 29 | } 30 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/MainView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 12.09.22. 6 | // 7 | 8 | import SwiftUI 9 | import Combine 10 | 11 | struct MainView: View { 12 | 13 | @ObservedObject 14 | var reader: ReaderFacade 15 | 16 | @State 17 | private var isScannerPresented = false 18 | @State 19 | private var isGalleryPresented = false 20 | 21 | var body: some View { 22 | NavigationView { 23 | if reader.isInitialized && !reader.isProcessing { 24 | VStack { 25 | Picker("Scenarios", selection: $reader.selectedScenario) { 26 | ForEach(reader.availableScenarios, id: \.self) { 27 | Text($0) 28 | } 29 | } 30 | .pickerStyle(WheelPickerStyle()) 31 | HStack(spacing: 120) { 32 | Button("Camera") { 33 | isScannerPresented.toggle() 34 | } 35 | .padding(10) 36 | .background(Color.accentColor) 37 | .foregroundColor(.white) 38 | .cornerRadius(8) 39 | .fullScreenCover(isPresented: $isScannerPresented, content: { 40 | CameraView(reader: reader) 41 | }) 42 | Button("Gallery") { 43 | isGalleryPresented.toggle() 44 | } 45 | .padding(10) 46 | .background(Color.accentColor) 47 | .foregroundColor(.white) 48 | .cornerRadius(8) 49 | .sheet(isPresented: $isGalleryPresented, content: { 50 | GalleryView(reader: reader) 51 | }) 52 | } 53 | NavigationLink("", isActive: $reader.areResultsReady) { 54 | ResultsView(reader: reader) 55 | }.hidden() 56 | } 57 | } else if reader.isProcessing { 58 | ProgressView().progressViewStyle(.circular) 59 | } else { 60 | Text("Initializing ...") 61 | } 62 | }.navigationViewStyle(.stack) 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/ResultsView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ResultsView.swift 3 | // DocReader-SUI-Sample 4 | // 5 | // Created by Dmitry Evglevsky on 12.09.22. 6 | // 7 | 8 | import SwiftUI 9 | import DocumentReader 10 | 11 | struct ResultsView: View { 12 | let reader: ReaderFacade 13 | 14 | @State 15 | private var pageIndex = 0 16 | 17 | var body: some View { 18 | Picker("Results Page", selection: $pageIndex) { 19 | Text("Text").tag(0) 20 | Text("Graphics").tag(1) 21 | } 22 | .pickerStyle(SegmentedPickerStyle()) 23 | 24 | if pageIndex == 0 { 25 | List(reader.lastTextResultFields, id: \.fieldName) { field in 26 | HStack { 27 | Text(field.fieldName + ":").fontWeight(.light).foregroundColor(Color.secondary) 28 | Text(field.values.first?.value ?? "").fontWeight(.light).foregroundColor(Color.primary) 29 | } 30 | } 31 | } else { 32 | GeometryReader { geo in 33 | List(reader.lastGraphicResultFields, id: \.hash) { field in 34 | VStack { 35 | Text(field.fieldName) 36 | .fontWeight(.light) 37 | .foregroundColor(Color.secondary) 38 | Image(uiImage: field.value) 39 | .resizable() 40 | .scaledToFit() 41 | .frame(width: geo.size.width) 42 | } 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | platform :ios, '13.0' 3 | 4 | target 'DocumentReaderSwiftUI-sample' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for DocumentReaderSwiftUI-sample 9 | pod 'DocumentReader', '~> 7.7.0' 10 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 11 | end 12 | -------------------------------------------------------------------------------- /Basic/DocumentReaderSwiftUI-sample/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Basic Swift UI Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Contacts](#technical-contacts) 12 | * [Business Contacts](#business-contacts) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK basic functionality. Also includes the sample UI implementation. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git`. 21 | 2. Open the `DocumentReaderSwiftUI-sample` project in an IDE. 22 | 3. Run pods `pod install`. 23 | 4. Add license and database files to the target: 24 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - Copy the license file to the project: `Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/` 26 | - Copy the database file `db.dat` from [Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `Basic/DocumentReaderSwiftUI-sample/DocumentReaderSwiftUI-sample/` 27 | 5. Change the application Bundle ID to the one you have specified during the registration at the [Client Portal](https://client.regulaforensics.com/). 28 | 29 | ## Documentation 30 | 31 | Document Reader SDK Mobile Documentation 32 | 33 | ## Demo Application 34 | 35 | Regula Document Reader iOS Demo Application in the App Store 36 | 37 | ## Technical Contacts 38 | 39 | To submit a request to Technical Support, visit Regula Help Center. 40 | 41 | ## Business Contacts 42 | 43 | To discuss business purposes or purchase the license, fill the Enquiry Form. -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | NDEF 8 | TAG 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcodeproj/xcuserdata/deposhe.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DocumentReaderSwiftBleLicense.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 5 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DocumentReaderSwiftBleLicense 4 | // 5 | // Created by Serge Rylko on 24.11.22. 6 | // 7 | 8 | import UIKit 9 | 10 | @UIApplicationMain 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | func applicationWillResignActive(_ application: UIApplication) { 21 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 22 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 23 | } 24 | 25 | func applicationDidEnterBackground(_ application: UIApplication) { 26 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 27 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 28 | } 29 | 30 | func applicationWillEnterForeground(_ application: UIApplication) { 31 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 32 | } 33 | 34 | func applicationDidBecomeActive(_ application: UIApplication) { 35 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 36 | } 37 | 38 | func applicationWillTerminate(_ application: UIApplication) { 39 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 40 | } 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "correct.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "correct@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "correct@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct@2x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/correct.imageset/correct@3x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "incorrect.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "incorrect@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "incorrect@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect@2x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/incorrect.imageset/incorrect@3x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "portrait.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "portrait@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "portrait@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait@2x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Assets.xcassets/portrait.imageset/portrait@3x.png -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | NDEF 8 | TAG 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.iso7816.select-identifiers 6 | 7 | A0000002471001 8 | E80704007F00070302 9 | A000000167455349474E 10 | A0000002480100 11 | A0000002480200 12 | A0000002480300 13 | A00000045645444C2D3031 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | 4 | platform :ios, '13.0' 5 | use_frameworks! 6 | 7 | target 'DocumentReaderSwiftBleLicense' do 8 | pod 'DocumentReader', '~> 7.7.0' 9 | pod 'DocumentReaderFullAuthRFID', '~> 7.7.0' 10 | pod 'BTDevice', '~> 7.6.0' 11 | end 12 | -------------------------------------------------------------------------------- /BleDevice/DocumentReaderSwiftBleLicense/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Document Reader SDK BLE Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK integration with the device Mobile Document Authenticator Regula 1120. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git` 21 | 2. Open the `DocumentReaderSwiftBleLicense` project in an IDE. 22 | 3. Run pods `pod install` 23 | 4. Add database file to the target: 24 | - Copy the database file `db.dat` from the [Client Portal](https://client.regulaforensics.com/customer/databases) to the project:`BleDevice/DocumentReaderSwiftBleLicense/DocumentReaderSwiftBleLicense` 25 | 26 | ## Documentation 27 | 28 | Document Reader SDK Mobile Documentation 29 | 30 | ## Demo Application 31 | 32 | Regula Document Reader iOS Demo Application in the App Store 33 | 34 | ## Technical Support 35 | 36 | To submit a request to the Support Team, visit Regula Help Center. 37 | 38 | ## Business Enquiries 39 | 40 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcodeproj/project.xcworkspace/xcuserdata/serge.rylko.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcodeproj/project.xcworkspace/xcuserdata/serge.rylko.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcodeproj/xcuserdata/serge.rylko.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DocumentReaderCertificatePinning.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning.xcworkspace/xcuserdata/deposhe.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DocumentReaderCertificatePinning 4 | // 5 | // Created by Serge Rylko on 11.10.23. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | // MARK: UISceneSession Lifecycle 21 | 22 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 23 | // Called when a new scene session is being created. 24 | // Use this method to select a configuration to create the new scene with. 25 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 26 | } 27 | 28 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 29 | // Called when the user discards a scene session. 30 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 31 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIApplicationSceneManifest 6 | 7 | UIApplicationSupportsMultipleScenes 8 | 9 | UISceneConfigurations 10 | 11 | UIWindowSceneSessionRoleApplication 12 | 13 | 14 | UISceneConfigurationName 15 | Default Configuration 16 | UISceneDelegateClassName 17 | $(PRODUCT_MODULE_NAME).SceneDelegate 18 | UISceneStoryboardFile 19 | Main 20 | 21 | 22 | 23 | 24 | NSAppTransportSecurity 25 | 26 | NSAllowsArbitraryLoads 27 | 28 | NSPinnedDomains 29 | 30 | regulaforensics.com 31 | 32 | NSIncludesSubdomains 33 | 34 | NSPinnedLeafIdentities 35 | 36 | 37 | SPKI-SHA256-BASE64 38 | /5RKFaPkCjAzvsEZHOlYqncYADaLIG5VfTmhsBbkaBk= 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // DocumentReaderCertificatePinning 4 | // 5 | // Created by Serge Rylko on 11.10.23. 6 | // 7 | 8 | import UIKit 9 | 10 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 11 | 12 | var window: UIWindow? 13 | 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 17 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 18 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 19 | guard let _ = (scene as? UIWindowScene) else { return } 20 | } 21 | 22 | func sceneDidDisconnect(_ scene: UIScene) { 23 | // Called as the scene is being released by the system. 24 | // This occurs shortly after the scene enters the background, or when its session is discarded. 25 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 26 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 27 | } 28 | 29 | func sceneDidBecomeActive(_ scene: UIScene) { 30 | // Called when the scene has moved from an inactive state to an active state. 31 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 32 | } 33 | 34 | func sceneWillResignActive(_ scene: UIScene) { 35 | // Called when the scene will move from an active state to an inactive state. 36 | // This may occur due to temporary interruptions (ex. an incoming phone call). 37 | } 38 | 39 | func sceneWillEnterForeground(_ scene: UIScene) { 40 | // Called as the scene transitions from the background to the foreground. 41 | // Use this method to undo the changes made on entering the background. 42 | } 43 | 44 | func sceneDidEnterBackground(_ scene: UIScene) { 45 | // Called as the scene transitions from the foreground to the background. 46 | // Use this method to save data, release shared resources, and store enough scene-specific state information 47 | // to restore the scene back to its current state. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // DocumentReaderCertificatePinning 4 | // 5 | // Created by Serge Rylko on 11.10.23. 6 | // 7 | 8 | import UIKit 9 | import DocumentReader 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | prepareReader() 16 | } 17 | 18 | private func prepareReader() { 19 | guard let licenseData = licenseData() else { 20 | print("License file missed") 21 | return 22 | } 23 | let config = DocReader.Config(license: licenseData) 24 | DocReader.shared.initializeReader(config: config) { success, error in 25 | if success { 26 | print("DocumentReader initialized") 27 | } else { 28 | print("Initialization failed \(error!.localizedDescription)") 29 | } 30 | } 31 | } 32 | 33 | @IBAction func didPressRecognizeButton(_ sender: Any) { 34 | guard let image = UIImage(named: "mrz_sample.jpg") else { return } 35 | let config = DocReader.RecognizeConfig(image: image) 36 | config.onlineProcessingConfig = .init(mode: .auto) 37 | config.onlineProcessingConfig?.processParams?.scenario = RGL_SCENARIO_MRZ 38 | DocReader.shared.recognize(config: config) { action, results, error in 39 | switch action { 40 | case .complete: 41 | let name = results?.getTextFieldByType(fieldType: .ft_Surname_And_Given_Names)?.value ?? "" 42 | let mrzString = results?.getTextFieldByType(fieldType: .ft_MRZ_Strings)?.value ?? "" 43 | print("completed: \(name) \(mrzString)") 44 | case .cancel: 45 | print("cancel") 46 | case .error: 47 | print(error) 48 | case .processOnServer: 49 | print("process on server") 50 | default: 51 | print("default") 52 | print(action.rawValue) 53 | } 54 | } 55 | } 56 | 57 | private func licenseData() -> Data? { 58 | guard 59 | let url = Bundle.main.url(forResource: "regula", withExtension: "license"), 60 | let data = try? Data(contentsOf: url) else { return nil } 61 | return data 62 | } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/mrz_sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/CertificatePinning/DocumentReaderCertificatePinning/DocumentReaderCertificatePinning/mrz_sample.jpg -------------------------------------------------------------------------------- /CertificatePinning/DocumentReaderCertificatePinning/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | platform :ios, '13.0' 3 | 4 | target 'DocumentReaderCertificatePinning' do 5 | pod 'DocumentReader', '~> 7.7.0' 6 | pod 'DocumentReaderMRZ', '~> 7.7.0' 7 | end 8 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DocumentReaderSwift-sample 4 | // 5 | // Created by Dmitry Smolyakov on 7/8/17. 6 | // Copyright © 2017 Dmitry Smolyakov. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | 21 | func applicationWillResignActive(_ application: UIApplication) { 22 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 23 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 24 | } 25 | 26 | func applicationDidEnterBackground(_ application: UIApplication) { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | func applicationWillEnterForeground(_ application: UIApplication) { 32 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 33 | } 34 | 35 | func applicationDidBecomeActive(_ application: UIApplication) { 36 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 37 | } 38 | 39 | func applicationWillTerminate(_ application: UIApplication) { 40 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 41 | } 42 | 43 | 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "rfid_icon copy-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "rfid_icon.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "rfid_icon copy-1.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-1.png -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon copy-2.png -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regulaforensics/DocumentReader-iOS/1598b6240a08f11a019f2bf435087e2336f3490a/Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Assets.xcassets/nfc_logo.imageset/rfid_icon.png -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | DocReader 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | UIInterfaceOrientationPortrait 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '13.0' 4 | use_frameworks! 5 | 6 | target 'DocumentReaderDatabase-sample' do 7 | pod 'DocumentReader', '~> 7.7.0' 8 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 9 | end 10 | -------------------------------------------------------------------------------- /Database/DocumentReaderDatabase-sample/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Document Reader SDK Database Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the options for the database usage. 17 | 18 | ## Installation 19 | 20 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git` 21 | 2. Open the `DocumentReaderDatabase-sample` project in an IDE. 22 | 3. Run pods `pod install` 23 | 4. Add license file to the target: 24 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 25 | - Copy the license file to the project: `Database/DocumentReaderDatabase-sample/DocumentReaderDatabase-sample/` 26 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 27 | 28 | ## Documentation 29 | 30 | Document Reader SDK Mobile Documentation 31 | 32 | ## Demo Application 33 | 34 | Regula Document Reader iOS Demo Application in the App Store 35 | 36 | ## Technical Support 37 | 38 | To submit a request to the Support Team, visit Regula Help Center. 39 | 40 | ## Business Enquiries 41 | 42 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // OnlineProcessing-With-License-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 7.10.24. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | }, 8 | { 9 | "appearances" : [ 10 | { 11 | "appearance" : "luminosity", 12 | "value" : "dark" 13 | } 14 | ], 15 | "idiom" : "universal", 16 | "platform" : "ios", 17 | "size" : "1024x1024" 18 | }, 19 | { 20 | "appearances" : [ 21 | { 22 | "appearance" : "luminosity", 23 | "value" : "tinted" 24 | } 25 | ], 26 | "idiom" : "universal", 27 | "platform" : "ios", 28 | "size" : "1024x1024" 29 | } 30 | ], 31 | "info" : { 32 | "author" : "xcode", 33 | "version" : 1 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/OnlineProcessing-With-License-Swift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-With-License-Swift/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '15.0' 4 | use_frameworks! 5 | 6 | target 'OnlineProcessing-With-License-Swift' do 7 | pod 'DocumentReader', '~> 7.7.0' 8 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 9 | end 10 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // OnlineProcessing-With-License-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 7.10.24. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | }, 8 | { 9 | "appearances" : [ 10 | { 11 | "appearance" : "luminosity", 12 | "value" : "dark" 13 | } 14 | ], 15 | "idiom" : "universal", 16 | "platform" : "ios", 17 | "size" : "1024x1024" 18 | }, 19 | { 20 | "appearances" : [ 21 | { 22 | "appearance" : "luminosity", 23 | "value" : "tinted" 24 | } 25 | ], 26 | "idiom" : "universal", 27 | "platform" : "ios", 28 | "size" : "1024x1024" 29 | } 30 | ], 31 | "info" : { 32 | "author" : "xcode", 33 | "version" : 1 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/OnlineProcessing-Without-License-Swift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/Podfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | platform :ios, '15.0' 4 | use_frameworks! 5 | 6 | target 'OnlineProcessing-Without-License-Swift' do 7 | pod 'DocumentReader', '~> 7.7.0' 8 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 9 | end 10 | -------------------------------------------------------------------------------- /OnlineProcessing/OnlineProcessing-Without-License-Swift/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Manual Mode Online Processing Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Installation](#installation) 9 | * [Documentation](#documentation) 10 | * [Demo Application](#demo-application) 11 | * [Technical Support](#technical-support) 12 | * [Business Enquiries](#business-enquiries) 13 | 14 | ## Overview 15 | 16 | Sample project in Swift, demonstrating the Document Reader SDK setup for Online Processing in the Manual Mode. In this mode, the document processing is performed fully on the Web API service, while the Mobile SDK is used only for capturing document images and passing them to the service. 17 | 18 | So the mobile application doesn't need to be initialized with the dedicated license. 19 | 20 | ## Installation 21 | 22 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git`. 23 | 2. Open the `OnlineProcessing-Without-License-Swift` project in an IDE. 24 | 3. Run pods `pod install`. 25 | 4. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 26 | 27 | ## Documentation 28 | 29 | Document Reader SDK Mobile Documentation 30 | 31 | ## Demo Application 32 | 33 | Regula Document Reader iOS Demo Application in the App Store 34 | 35 | ## Technical Support 36 | 37 | To submit a request to the Support Team, visit Regula Help Center. 38 | 39 | ## Business Enquiries 40 | 41 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '13.0' 2 | use_frameworks! 3 | 4 | target 'RfidCertificates-Default-Swift' do 5 | pod 'DocumentReader', '~> 7.7.0' 6 | pod 'DocumentReaderFullRFID', '~> 7.7.0' 7 | end 8 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/README.md: -------------------------------------------------------------------------------- 1 | [![Version](https://img.shields.io/cocoapods/v/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 2 | [![License](https://img.shields.io/cocoapods/l/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 3 | [![Platform](https://img.shields.io/cocoapods/p/DocumentReader.svg?style=flat)](http://cocoapods.org/pods/DocumentReader) 4 | 5 | # Document Reader SDK RFID Certificates Sample Project (iOS) 6 | 7 | * [Overview](#overview) 8 | * [Documentation](#documentation) 9 | * [Demo Application](#demo-application) 10 | * [Technical Support](#technical-support) 11 | * [Business Enquiries](#business-enquiries) 12 | 13 | ## Overview 14 | 15 | Sample project in Swift, demonstrating how to use PKD certificates for the RFID chip processing. 16 | 17 | ## Installation 18 | 19 | 1. Download or clone the current repository using the command `git clone https://github.com/regulaforensics/DocumentReader-iOS.git` 20 | 2. Open the `RfidCertificates-Default-Swift` project in an IDE. 21 | 3. Run pods `pod install` 22 | 4. Add license and database files to the target: 23 | - Visit [Regula Client Portal](https://client.regulaforensics.com/) to get a trial license (`regula.license` file). The license creation wizard will guide you through the necessary steps. 24 | - Copy the license file to the project: `RfidCertificates/RfidCertificates-Default-Swift/` 25 | - Copy the database file `db.dat` from [Regula Client Portal](https://client.regulaforensics.com/customer/databases) to the project: `RfidCertificates/RfidCertificates-Default-Swift/` 26 | 5. Change the application Bundle ID to the one you have specified during the registration at [Regula Client Portal](https://client.regulaforensics.com/). 27 | 28 | ## Documentation 29 | 30 | Document Reader SDK Mobile Documentation 31 | 32 | ## Demo Application 33 | 34 | Regula Document Reader iOS Demo Application in the App Store 35 | 36 | ## Technical Support 37 | 38 | To submit a request to the Support Team, visit Regula Help Center. 39 | 40 | ## Business Enquiries 41 | 42 | To discuss business opportunities, fill the Enquiry Form and specify your scenarios, applications, and technical requirements. -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // RfidCertificates-Default-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 22.03.23. 6 | // Copyright © 2023 Regula. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @main 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Constants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Constants.swift 3 | // RfidCertificates-Default-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 22.03.23. 6 | // Copyright © 2023 Regula. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let kRegulaLicenseFile = "regula.license" 12 | let kRegulaDatabaseId = "Full" 13 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIApplicationSceneManifest 6 | 7 | UIApplicationSupportsMultipleScenes 8 | 9 | UISceneConfigurations 10 | 11 | 12 | com.apple.developer.nfc.readersession.iso7816.select-identifiers 13 | 14 | A0000002471001 15 | E80704007F00070302 16 | A000000167455349474E 17 | A0000002480100 18 | A0000002480200 19 | A0000002480300 20 | A00000045645444C2D3031 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/PKDCertificate+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PKDCertificate+Extensions.swift 3 | // RfidCertificates-Default-Swift 4 | // 5 | // Created by Dmitry Evglevsky on 22.03.23. 6 | // Copyright © 2023 Regula. All rights reserved. 7 | // 8 | 9 | import DocumentReader 10 | 11 | extension PKDCertificate { 12 | static func findResourceType(typeName: String) -> PKDResourceType { 13 | switch typeName.lowercased() { 14 | case "pa": 15 | return PKDResourceType.certificate_PA 16 | case "ta": 17 | return PKDResourceType.certificate_TA 18 | case "ldif": 19 | return PKDResourceType.LDIF 20 | case "crl": 21 | return PKDResourceType.CRL 22 | case "ml": 23 | return PKDResourceType.ML 24 | case "defl": 25 | return PKDResourceType.defL 26 | case "devl": 27 | return PKDResourceType.devL 28 | case "bl": 29 | return PKDResourceType.BL 30 | default: 31 | return PKDResourceType.certificate_PA 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /RfidCertificates/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift/RfidCertificates-Default-Swift.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.nfc.readersession.formats 6 | 7 | TAG 8 | 9 | 10 | 11 | --------------------------------------------------------------------------------