From 55e6278e3dee2ae0748b56f97441fcb5bf1a1477 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. Change-Id: I64ab5b8f8762804869c0f97debd97da817787808 Reviewed-by: Juha Vuolle (cherry picked from commit ad42833d3373604eec885702f1bc4719593d7dcf) Reviewed-by: Qt Cherry-pick Bot --- .../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 40fcd0ad47a..c355a74b7cd 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: