【问题标题】:macOS app crashes and does not prompt for camera permissionsmacOS 应用程序崩溃并且不提示相机权限
【发布时间】:2020-03-28 04:44:27
【问题描述】:

我的应用在 Catalina 以外的任何其他 macOS 版本中都能正常运行。我已经按照here 的说明在 Info.plist 文件中添加了摄像头和麦克风权限,但是当应用程序提示权限时,它会一直崩溃(我什至尝试添加 XCode 提供的每个可用权限)。如果我从终端运行我的应用程序,它实际上会提示“终端”想要访问相机。

对此有任何想法吗?以下是部分日志:

Process:               FooApp [1761]
Path:                  /Applications/FooApp.app/Contents/Home/bin/./FooApp
Identifier:            com.fooApp
Version:               1.6.0.3 (1.6.0.3)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1757]
User ID:               501

Date/Time:             2019-12-03 13:53:30.472 +0100
OS Version:            Mac OS X 10.15.1 (19B88)
Report Version:        12
Anonymous UUID:        0FEAB303-C00B-E970-1979-5CE1CC615C4E


Time Awake Since Boot: 3100 seconds

System Integrity Protection: disabled

Crashed Thread:        19  Dispatch queue: com.apple.root.default-qos

Exception Type:        EXC_CRASH (SIGKILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace TCC, Code 0x0

Thread 19 Crashed:: Dispatch queue: com.apple.root.default-qos
0   libsystem_kernel.dylib          0x00007fff6377c15e __terminate_with_payload + 10
1   libsystem_kernel.dylib          0x00007fff63796512 abort_with_payload_wrapper_internal + 119
2   libsystem_kernel.dylib          0x00007fff6379651d abort_with_payload + 9
3   com.apple.TCC                   0x00007fff5b9060d1 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 163
4   com.apple.TCC                   0x00007fff5b90602e __TCCAccessRequest_block_invoke.114 + 500
5   com.apple.TCC                   0x00007fff5b903bc5 __tccd_send_message_block_invoke + 231
6   libxpc.dylib                    0x00007fff63879ef4 _xpc_connection_reply_callout + 36
7   libxpc.dylib                    0x00007fff63879e7c _xpc_connection_call_reply_async + 69
8   libdispatch.dylib               0x00007fff635dc578 _dispatch_client_callout3 + 8
9   libdispatch.dylib               0x00007fff635f3080 _dispatch_mach_msg_async_reply_invoke + 369
10  libdispatch.dylib               0x00007fff635eb48c _dispatch_kevent_worker_thread + 1324
11  libsystem_pthread.dylib         0x00007fff63835763 _pthread_wqthread + 362
12  libsystem_pthread.dylib         0x00007fff6383557b start_wqthread + 15

Thread 20:: Dispatch queue: com.apple.root.default-qos
0   libsystem_kernel.dylib          0x00007fff6377a4a2 __wait4 + 10
1   libmonosgen-2.0.1.dylib         0x000000010e87fecd mono_handle_native_crash + 397
2   libsystem_platform.dylib        0x00007fff6382db1d _sigtramp + 29
3   libsystem_c.dylib               0x00007fff636ece1b __v2printf + 475
4   libsystem_kernel.dylib          0x00007fff6379651d abort_with_payload + 9
5   com.apple.TCC                   0x00007fff5b9060d1 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 163
6   com.apple.TCC                   0x00007fff5b90602e __TCCAccessRequest_block_invoke.114 + 500
7   com.apple.TCC                   0x00007fff5b903bc5 __tccd_send_message_block_invoke + 231
8   libxpc.dylib                    0x00007fff63879ef4 _xpc_connection_reply_callout + 36
9   libxpc.dylib                    0x00007fff63879e7c _xpc_connection_call_reply_async + 69
10  libdispatch.dylib               0x00007fff635dc578 _dispatch_client_callout3 + 8
11  libdispatch.dylib               0x00007fff635f3080 _dispatch_mach_msg_async_reply_invoke + 369
12  libdispatch.dylib               0x00007fff635eb48c _dispatch_kevent_worker_thread + 1324
13  libsystem_pthread.dylib         0x00007fff63835763 _pthread_wqthread + 362
14  libsystem_pthread.dylib         0x00007fff6383557b start_wqthread + 15

【问题讨论】:

    标签: ios macos permissions camera info.plist


    【解决方案1】:

    最后在全网没有帮助后,我发现问题在于Info.plist用来打开我的应用程序是一个脚本,它设置了一些需要的东西,然后打开程序。

    这里的错误是我的应用程序没有使用通过脚本打开的应用程序的 Info.plist 文件,因为脚本是该文件的所有者。然后应用程序崩溃,因为它没有 Info.plist 文件,在该文件中获取提示权限的消息。

    在我的情况下,我必须创建一个 unix 可执行文件,并将单声道 mkbundle 作为主要更改。

    我写了一篇关于在 macOS 中进行打包的帖子,我在这里对此进行了解释:https://www.theimpostersyndrome.dev/posts/macospackaging/

    【讨论】:

      【解决方案2】:
      1. 在你的终端输入:launchctl list|grep -i com.apple.tccd
      2. 如果没有尝试输入:launchctl load -wF /System/Library/LaunchAgents/com.apple.tccd.plist
      3. 重启你的mac

      【讨论】:

      • 嗨,土豆。请你解释一下这是哪个解决方案。
      • 现在回到办公室。这对我不起作用。另外,我不知道如何解决。
      【解决方案3】:

      您是否尝试通过设置授予访问权限?某些应用程序不支持新 Mac OS 版本。因此,当它尝试请求访问时,它会崩溃

      【讨论】:

      • 感谢您的回复 Ahmet,但这对我没有帮助。我已经从设置访问我的应用程序的“辅助功能”、“输入监控”、“全盘访问”和“开发者工具”(例如,我无法访问“相机”,因为系统没有给我那个选项)。
      猜你喜欢
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 2018-05-07
      • 2012-10-15
      相关资源
      最近更新 更多