diff options
author | Doris Verria <doris.verria@qt.io> | 2021-12-15 23:40:17 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-12-17 13:38:49 +0000 |
commit | 8a61b03f32590ca64fd12f16fbc005c4b6e83651 (patch) | |
tree | 740a7e7cfd3b8647ac093a53d32807f8d0644195 /examples/multimediawidgets/camera | |
parent | d1c8ec42e07c442d8e48d955ec79b98df2dc63e3 (diff) |
Multimedia examples: Add camera and audio input entitlements
Apple needs apps to specify proper entitlements in order to grant the
executable permissions to use services like camera and microphone.
The multimedia examples using microphone and camera were sometimes
crashing because of missing entitlements. To fix, add an entitlement
file to all examples using these services, and add a post-build
command to codesign the executables with the specified entitlements.
Task-number: QTBUG-98419
Change-Id: I6a578def1f6a41b4d106ee49c0c32fad304ef3cb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 767315b2049f0685f12de3418c658313851e8c0f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'examples/multimediawidgets/camera')
-rw-r--r-- | examples/multimediawidgets/camera/CMakeLists.txt | 8 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/camera.entitlements | 10 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/camera.pro | 10 |
3 files changed, 28 insertions, 0 deletions
diff --git a/examples/multimediawidgets/camera/CMakeLists.txt b/examples/multimediawidgets/camera/CMakeLists.txt index 9d0f6eb7e..53b858f78 100644 --- a/examples/multimediawidgets/camera/CMakeLists.txt +++ b/examples/multimediawidgets/camera/CMakeLists.txt @@ -47,7 +47,15 @@ set_target_properties(camera PROPERTIES if(APPLE AND NOT IOS) set_target_properties(camera PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in" + XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS + "${CMAKE_CURRENT_LIST_DIR}/camera.entitlements" ) + if(NOT CMAKE_GENERATOR STREQUAL "Xcode") + add_custom_command(TARGET camera + POST_BUILD + COMMAND codesign --sign - --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/camera.entitlements ${CMAKE_CURRENT_BINARY_DIR}/camera.app + ) + endif() elseif(IOS) set_target_properties(camera PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ios/Info.plist.in" diff --git a/examples/multimediawidgets/camera/camera.entitlements b/examples/multimediawidgets/camera/camera.entitlements new file mode 100644 index 000000000..97c1f6d58 --- /dev/null +++ b/examples/multimediawidgets/camera/camera.entitlements @@ -0,0 +1,10 @@ +<?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>com.apple.security.device.audio-input</key> + <true/> + <key>com.apple.security.device.camera</key> + <true/> +</dict> +</plist> diff --git a/examples/multimediawidgets/camera/camera.pro b/examples/multimediawidgets/camera/camera.pro index e1d98c06e..87590cb2b 100644 --- a/examples/multimediawidgets/camera/camera.pro +++ b/examples/multimediawidgets/camera/camera.pro @@ -38,3 +38,13 @@ include(../../multimedia/shared/shared.pri) ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android OTHER_FILES += android/AndroidManifest.xml + +macos { + macx-xcode { + code_sign_entitlements.name = CODE_SIGN_ENTITLEMENTS + code_sign_entitlements.value = $$PWD/$${TARGET}.entitlements + QMAKE_MAC_XCODE_SETTINGS += code_sign_entitlements + } else { + QMAKE_POST_LINK += "codesign --sign - --entitlements $$PWD/$${TARGET}.entitlements $${OUT_PWD}/$${TARGET}.app" + } +} |