objective-c - requestAccessForMediaType 在 iOS 10 中崩溃

标签 objective-c card.io ios10 xcode8-beta2

在我的应用程序中,我使用 card.io 扫描信用卡。它在 iOS 9 中运行良好。在 iOS 10 中,应用程序崩溃了,我在 xcode 8 beta 2 控制台中找不到崩溃日志,因为它会抛出大量垃圾消息。

然后我检查了隐私-> 设置以查看我的应用程序是否禁用了相机,但我的应用程序未在该部分中列出。似乎 iOS 10 没有授予我的应用程序使用相机的权限。

我使用以下代码请求权限:

-(BOOL)checkCameraPermissions{

    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if(authStatus == AVAuthorizationStatusAuthorized)
    {
        // start card-io
        return YES;
    }
    else if(authStatus == AVAuthorizationStatusNotDetermined)
    {

        [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted)
         {
             if(granted)
             {
                 //Start card-io
                 [self testIsNewCard];
             }

         }];
    }
    else if (authStatus == AVAuthorizationStatusRestricted)
    {
        //Alert
        // Alert camera denied

        UIAlertController *aCon=[UIAlertController alertControllerWithTitle:@"Camera denied" message:@"Camera cannot be used" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *ok =[UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            [aCon dismissViewControllerAnimated:YES completion:nil];
        }];
        [aCon addAction:ok];
        [self presentViewController:aCon animated:YES completion:nil];

        return NO;

    }

    return NO;

}

当我运行这段代码时,authStatus 返回为 AVAuthorizationStatusNotDetermined

应用程序在进入 block requestAccessForMediaType:AVMediaTypeVideo 后立即崩溃

控制台中显示了太多垃圾日志,我不知道如何找到崩溃消息。

编辑: 我找到了一个选项来禁用 xcode 8 中所有不必要的日志。答案已发布 here.但即使在禁用回溯调试后,xcode 仍然没有显示任何崩溃日志。

我的 xcode8 刚刚显示这条消息,应用程序刚刚退出:

  App[1124:226447] [access] <private>

我也尝试重置位置和隐私,但在尝试请求媒体访问时应用程序仍然崩溃。

知道为什么会这样吗?

最佳答案

我将“Privacy - Camera Usage Description” key 添加到我的 info.plist 文件中,现在可以使用了。

关于objective-c - requestAccessForMediaType 在 iOS 10 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267608/

相关文章:

ios - NSSPredicate 变量匹配 - Objective c

ios - 如何从card.io SDK获取国家名称? -iOS

android - card.io 卡扫描永远无法完成

ios - 如何在我的 viewController 中对自定义 UITableViewCell 执行操作?

objective-c - 如何使用 ipad 的 objective-c 发送/接收 soap 对象

ios - 调整设备尺寸的 UILabel 字体大小

android - Android 上的 Card.IO 与 Gradle

ios - OpenCV MatToUIImage 导致内存泄漏

ios - 即使我使用 iOS 10、Xcode 8 在 info.plist 中添加了 NSCameraUsageDescription,应用程序也会崩溃

iOS:在对新的 viewController 执行 segue 时添加插页式广告?