diff --git a/.changes/barcode-scanner-validate-plist.md b/.changes/barcode-scanner-validate-plist.md new file mode 100644 index 00000000..70780005 --- /dev/null +++ b/.changes/barcode-scanner-validate-plist.md @@ -0,0 +1,5 @@ +--- +"barcode-scanner": patch +--- + +Validate missing `NSCameraUsageDescription` Info.plist value. diff --git a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift index 7efdc256..cde8d680 100644 --- a/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift +++ b/plugins/barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift @@ -262,6 +262,13 @@ class BarcodeScannerPlugin: Plugin, AVCaptureMetadataOutputObjectsDelegate { self.invoke = invoke + let entry = Bundle.main.infoDictionary?["NSCameraUsageDescription"] as? String + + if entry == nil || entry?.count == 0 { + invoke.reject("NSCameraUsageDescription is not in the app Info.plist") + return + } + var iOS14min: Bool = false if #available(iOS 14.0, *) { iOS14min = true } if !iOS14min && self.getPermissionState() != "granted" {