From 8c3a6a253d7029d370659d2102f91a458745d345 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Tue, 10 Sep 2024 12:24:03 -0300 Subject: [PATCH] feat(barcode-scanner): validate missing Info.plist configuration (#1758) --- .changes/barcode-scanner-validate-plist.md | 5 +++++ .../barcode-scanner/ios/Sources/BarcodeScannerPlugin.swift | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changes/barcode-scanner-validate-plist.md 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" {