Xcode中缺少C++命令行工具应用程序的info.plist文件

o4hqfura  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(84)

我想用opencv为大学课程创建一个相机校准应用程序。我在macOS High Sierra上创建了一个命令行工具应用程序。不幸的是,它没有一个info.plist文件。我的应用程序崩溃并显示以下错误消息:
CameraCalibration[2314:193066] [access]此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的Info.plist必须包含NSCameraUsageDescription键,该键带有一个字符串值,用于向用户解释应用程序如何使用此数据。程序以退出代码结束:9
我已经尝试添加一个info.plist文件,并在应用程序的常规选项卡中设置它。我还添加了NSCameraUsageDescription键和字符串。不幸的是,我的应用程序不断崩溃,由于完全相同的错误。

tkclm6bt

tkclm6bt1#

您可以通过设置Create Info.plist Section in Binary并在Xcode > Target > Build Settings > Packaging中设置Info.plist文件的路径(更改以粗体标记)来在二进制文件中嵌入Info.plist
x1c 0d1x的数据
你的Info.plist可能看起来像这样:

<?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>CFBundleIdentifier</key>
    <string>com.mycorp.myapp</string>
    <key>CFBundleName</key>
    <string>My App</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>record from the microphone</string>
    <key>NSCameraUsageDescription</key>
    <string>record from the camera</string>
</dict>
</plist>

字符串

N.B:当在Xcode(11.2.1/ Catalina 10.15.1)的调试器中运行时,我仍然会得到一个隐私异常,但是plist * 是 * 嵌入在二进制文件中的。我想这是一个Xcode bug。将Info.plist放入Products目录可以解决这个问题,尽管每次修改二进制文件时似乎都必须重新授权麦克风/摄像头的使用。

相关问题