summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2023-02-02 15:17:56 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2023-02-02 19:12:50 +0100
commitad42833d3373604eec885702f1bc4719593d7dcf (patch)
tree966b3a35c7cb08ca25cf0d367be2de235b406002 /src/corelib
parent7df8ef0a107ebd0f7394784366ea02b0b3956669 (diff)
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 <juha.vuolle@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm b/src/corelib/platform/darwin/qdarwinpermissionplugin_location.mm
index 39bae8cccb..07556ad8b9 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: