If you set QMAKE_INFO_PLIST the permission.prf logic should resolve the 
required permission plugins automatically. If you have a 6.6.3 or 6.7.x based 
sample that reproduces that not working please file an issue.

The part you’re missing is likely the QMAKE_LFLAGS += $$request_flag


❯ cat ../../qtbase/mkspecs/modules/qt_plugin_qdarwincamerapermission.pri        
                               12s
QT_PLUGIN.qdarwincamerapermission.TYPE = permissions
QT_PLUGIN.qdarwincamerapermission.EXTENDS = -
QT_PLUGIN.qdarwincamerapermission.DEPENDS = core
QT_PLUGIN.qdarwincamerapermission.CLASS_NAME = QDarwinCameraPermissionPlugin
QT_PLUGIN.qdarwincamerapermission.module_config = v2 staticlib
QT_PLUGINS += qdarwincamerapermission
QT_PLUGIN.qdarwincamerapermission.usage_descriptions = NSCameraUsageDescription
QT_PLUGIN.qdarwincamerapermission.request_flag = 
-Wl,-u,_QDarwinCameraPermissionRequest

❯ cat ../../qtbase/mkspecs/modules/qt_plugin_qdarwinmicrophonepermission.pri
QT_PLUGIN.qdarwinmicrophonepermission.TYPE = permissions
QT_PLUGIN.qdarwinmicrophonepermission.EXTENDS = -
QT_PLUGIN.qdarwinmicrophonepermission.DEPENDS = core
QT_PLUGIN.qdarwinmicrophonepermission.CLASS_NAME = 
QDarwinMicrophonePermissionPlugin
QT_PLUGIN.qdarwinmicrophonepermission.module_config = v2 staticlib
QT_PLUGINS += qdarwinmicrophonepermission
QT_PLUGIN.qdarwinmicrophonepermission.usage_descriptions = 
NSMicrophoneUsageDescription
QT_PLUGIN.qdarwinmicrophonepermission.request_flag = 
-Wl,-u,_QDarwinMicrophonePermissionRequest

> On 7 Jun 2024, at 18:02, Nuno Santos <nuno.san...@imaginando.pt> wrote:
>
> 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.ves...@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@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@qt-project.org
>>> https://lists.qt-project.org/listinfo/interest
>>
>

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to