From e516a87818c5a535376b705503e255bbb4e78d90 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Sun, 8 Apr 2018 17:55:59 +0200 Subject: [PATCH] Check if NSCameraUsageDescription is set and return error instead of crash (#643) --- src/ios/CDVBarcodeScanner.mm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ios/CDVBarcodeScanner.mm b/src/ios/CDVBarcodeScanner.mm index d6c95b5c..b5482a67 100644 --- a/src/ios/CDVBarcodeScanner.mm +++ b/src/ios/CDVBarcodeScanner.mm @@ -139,6 +139,15 @@ -(BOOL)notHasPermission authStatus == AVAuthorizationStatusRestricted); } +-(BOOL)isUsageDescriptionSet +{ + NSDictionary * plist = [[NSBundle mainBundle] infoDictionary]; + if ([plist objectForKey:@"NSCameraUsageDescription" ]) { + return YES; + } + return NO; +} + //-------------------------------------------------------------------------- @@ -173,6 +182,10 @@ - (void)scan:(CDVInvokedUrlCommand*)command { NSString * error = NSLocalizedString(@"Access to the camera has been prohibited; please enable it in the Settings app to continue.",nil); [self returnError:error callback:callback]; return; + } else if (![self isUsageDescriptionSet]) { + NSString * error = NSLocalizedString(@"NSCameraUsageDescription is not set in the info.plist", nil); + [self returnError:error callback:callback]; + return; } processor = [[CDVbcsProcessor alloc]