同样的代码在Windows上可以轻松操作麦克风和摄像头,特别是用QT这种跨平台的框架。但是对macOS这种权限要求完善的系统还需要进行一些配置,那就是增加Info.plist属性配置文件。如果是之前的早期5.x版本的QTCreator因为使用的是qmake构建系统,估计可以帮忙生成,但是从6.x以后QTCreator已经默认使用CMake了。问题是CMake不会帮忙做太多工作,如果需要用到一些平台上的权限,就需要手动创建Info.plist文件,这当然跟XCode的便利性没法比。
比较方便的是这个属性文件大多数是固定配置,有一个模板就可以方便编辑了,最方便的就是Info.plist.in文件,这个文件中的很多部分都是占位符,cmake在编译的时候会帮忙做替换填充,生成最终的Info.plist文件,这真是太方便了:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleName</key>
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${MACOSX_

本文介绍了如何在macOS上使用QT框架开发时,针对权限完善的需求,通过CMake管理和生成Info.plist文件来配置麦克风和摄像头权限。特别强调了Info.plist.in文件的使用及其在CMake构建过程中的作用。
466

被折叠的 条评论
为什么被折叠?



