我的应用程序在 iOS 9.3 版本以上的条码扫描中崩溃

My Application get crashed for Barcode Scanning in above iOS 9.3 version

您好,我正在尝试开发用于一维和二维条码扫描的应用程序,它在 iOS 9.3 和 Xcode 7.3 中运行良好,但是当我尝试在 运行 中使用相同的应用程序时iOS 10 和 Xcode 8.2 应用程序在以下行崩溃。 请帮助。

[_session addOutput:_output];

-(void)setupCaptureSession{

    _session = [[AVCaptureSession alloc] init];
    _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    NSError *error = nil;

    _input = [AVCaptureDeviceInput deviceInputWithDevice:_device error:&error];

    if (_input) {
        [_session addInput:_input];
    } else {
        NSLog(@"Error: %@", error);
    }

    _output = [[AVCaptureMetadataOutput alloc] init];

    [_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
    [_session addOutput:_output]; // here Application get crashed.

    _output.metadataObjectTypes = [_output availableMetadataObjectTypes];

    _prevLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session];
    _prevLayer.frame = _previewView.bounds;
    _prevLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    [_previewView.layer addSublayer:_prevLayer];
      //[self.view];
    //[_session startRunning];

    [_previewView bringSubviewToFront:_highlightView];

}

您是否将相机使用说明添加到您的 plist 文件中?如果没有,请查看 this 博客。

iOS 10 使用硬件输入源需要更多隐私。
您的应用可以使用摄像头,您需要提供额外的解释说明为什么它需要摄像头。

因此,转到您的 Info.plist 文件并在那里添加一个额外的 key-value 对字典。
对于密钥选择 - Privacy Camera Usage Description
对于 value 添加一些字符串,如下一个 - App needs a camera to make amazing photos, scan barcodes, etc...

要确定是否一切正常,请转到 Settings iOS 应用程序并检查是否已为您的应用程序切换到 On

你好,我刚刚评论了以下行代码:

[_previewView.layer addSublayer:_prevLayer];

并在我的应用程序中添加了以下行代码并且应用程序正常运行:

[_previewView.layer insertSublayer:_prevLayer atIndex:0];