From ad42833d3373604eec885702f1bc4719593d7dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 2 Feb 2023 15:17:56 +0100 Subject: [PATCH] Apple: Detect missing bundle identifier when using location permissions The location permissions database in /var/db/locationd/clients.plist ties the location permission to the bundle identifier (among other things), so a missing bundle identifier will result in the app asking repeatedly for the location permission, as the permission is never saved. Pick-to: 6.5 Change-Id: I64ab5b8f8762804869c0f97debd97da817787808 Reviewed-by: Juha Vuolle --- .../platform/darwin/qdarwinpermissionplugin_location.mm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm b/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm index 39bae8cccb1..07556ad8b9d 100644 --- a/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm +++ b/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm @@ -66,6 +66,13 @@ struct PermissionRequest - (Qt::PermissionStatus)authorizationStatus:(QLocationPermission)permission { + NSString *bundleIdentifier = NSBundle.mainBundle.bundleIdentifier; + if (!bundleIdentifier || !bundleIdentifier.length) { + qCWarning(lcLocationPermission) << "Missing bundle identifier" + << "in Info.plist. Can not use location permissions."; + return Qt::PermissionStatus::Denied; + } + switch ([self authorizationStatus]) { case kCLAuthorizationStatusRestricted: case kCLAuthorizationStatusDenied: