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

Cod*_*rce 7 c++ xcode info.plist command-line-tool macos-high-sierra

我想为大学课程创建一个带有 opencv 的相机校准应用程序。我在 macOS High Sierra 上创建了一个命令行工具应用程序。不幸的是它没有 info.plist 文件。我的应用程序崩溃并显示以下错误消息:

CameraCalibration[2314:193066] [访问] 此应用程序崩溃,因为它试图访问没有使用说明的隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSCameraUsageDescription 键和一个字符串值,向用户解释应用程序如何使用这些数据。程序以退出代码结束:9

我已经尝试添加 info.plist 文件并将其设置在应用程序的常规选项卡中。我还添加了 NSCameraUsageDescription 键和字符串。不幸的是,由于完全相同的错误,我的应用程序不断崩溃。

Rhy*_*man 8

您可以Info.plist通过设置Create Info.plist Section in Binary和设置Info.plist文件路径Xcode > Target > Build Settings > Packaging(更改以粗体标记)来将 嵌入到您的二进制文件中:

Xcode 目标 Info.plist 设置

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>
Run Code Online (Sandbox Code Playgroud)

:在Xcode中调试器中运行时(11.2.1 /卡塔利娜10.15.1)我仍然获得了隐私的例外,但是plist中嵌入的二进制文件。我想这是一个 Xcode 错误。将 anInfo.plist放入Products目录可以解决此问题,尽管每次修改二进制文件时您似乎都必须重新授权麦克风/相机的使用。

  • 感谢您提供产品目录中的 Info.plist 提示! (3认同)