Babylon Research
Babylon Research

Reputation: 33

IOS: Document camera is not available

Im trying to build simple camera app with apple's VisionKit, but faced Thread error while open camera. I've added Privacy - Camera Usage Description to my info.plist How can i get access to camera ? I run app on emulator ? may this cause error ?

ViewController:

import UIKit
import VisionKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func openCameraButtonTaped(_ sender: Any) {
        configureDocumentView()
    }
    
    private func configureDocumentView() {
        let scannerViewController = VNDocumentCameraViewController()
        scannerViewController.delegate = self
        self.present(scannerViewController, animated: true, completion: nil)
    }
}

extension ViewController: VNDocumentCameraViewControllerDelegate {
    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
        for pageNum in 0..<scan.pageCount {
            let image = scan.imageOfPage(at: pageNum)
            
            print(image)
        }
        
        controller.dismiss(animated: true, completion: nil)
    }
    
    func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) {
        controller.dismiss(animated: true)
    }
    
    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFailWithError error: Error) {
        print(error)
        controller.dismiss(animated: true)
    }
}

info.plist:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSCameraUsageDescription</key>
    <string>This app requires camera access to scan docs</string>
    <key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
        <key>UISceneConfigurations</key>
        <dict>
        

Upvotes: 0

Views: 952

Answers (1)

Ashok28
Ashok28

Reputation: 108

To test any camera related functionality you need to run app on a real device, simulator is not supported.

Upvotes: 2

Related Questions