[Interest] [Qt 6.6.1 - MacOS] qt.permissions: Could not find permission plugin for QCameraPermission.

Nuno Santos nuno.santos at imaginando.pt
Fri Jun 7 18:02:32 CEST 2024


Tor,

Thanks for your reply. I’m still using QMake

After a long time debugging I have realised that there is some kind of magic involved in using QPermission api.

I have found a qmake script that seems to look at Info.plist and search for the necessary key: qtbase/mkspecs/features/permissions.prf

Also, it seems that a QT_PLUGIN must be set in qmake in order to link the appropriate plugin.

But this is not stated anywhere in the documentation therefore I’m linking the plugin manually:

LIBS += /Users/nsantos/Qt/6.6.3/macos_static/plugins/permissions/libqdarwincamerapermission.a

And I’m registering the plugin manually using: Q_IMPORT_PLUGIN(QDarwinCameraPermissionPlugin)

When running the program I don’t have the same message anymore but it is still complaining about the key not being on the Info.plist when it is.

checking permissions Qt::PermissionStatus::Undetermined
qt.permissions: Requesting QCameraPermission requires "NSCameraUsageDescription" in Info.plist

The application is code signed with the camera entitlements:

Executable=/private/tmp/build-vs-Qt_6_6_3_for_macOS_static-Release/VS.app/Contents/MacOS/VS
[Dict]
	[Key] com.apple.security.device.audio-input
	[Value]
		[Bool] true
	[Key] com.apple.security.device.camera
	[Value]
		[Bool] true

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleExecutable</key>
	<string>VS</string>
	<key>CFBundleGetInfoString</key>
	<string>1.6.0</string>
	<key>CFBundleIconFile</key>
	<string>icon.icns</string>
	<key>CFBundleIdentifier</key>
	<string>com.imaginando.vs</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.6.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.6.0</string>
	<key>NSCameraUsageDescription</key>
	<string>You can use camera input to create audio reactive visuals</string>
	<key>NSMicrophoneUsageDescription</key>
	<string>You can use audio input to create audio reactive visuals</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
	<key>NSSupportsAutomaticGraphicsSwitching</key>
	<true/>
</dict>
</plist>

What am I missing?

Thanks!

Regards,

Nuno

> On 7 Jun 2024, at 16:32, Tor Arne Vestbø <Tor.arne.Vestbo at qt.io> wrote:
> 
> Is the problem there in v6.6.3 as well? qmake or CMake based project?
> 
> Tor Arne 
> 
>> On 7 Jun 2024, at 16:44, Nuno Santos via Interest <interest at qt-project.org> wrote:
>> 
>> Hi,
>> 
>> I’m trying to use the new QPermissions API on Qt 6.6.1 on a Mac but I’m having a problem.
>> 
>> Even the app is code signed, has the necessary NSCameraUsageDescription on the Info.plist I always get the following message:
>> 
>> qt.permissions: Could not find permission plugin for QCameraPermission. Please make sure you have included the required usage description in your Info.plist
>> 
>> I’ve looked to the source code and it seems that it tried to load a plugin and this message is only shown when the plugin is not found.
>> 
>> I’ve also checked the qt build to see if the lib was around.
>> 
>> Am I missing something?
>> 
>> Thanks!
>> 
>> Regards
>> 
>> Nuno
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> https://lists.qt-project.org/listinfo/interest
> 



More information about the Interest mailing list