ios - macOS 应用程序崩溃并且不提示相机权限

标签 ios macos permissions camera info.plist

我的应用程序在除 Catalina 之外的任何其他 macOS 版本中都可以正常运行。我已按照说明在 Info.plist 文件中添加了摄像头和麦克风权限 here但是应用程序在提示权限时不断崩溃(我什至尝试添加 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

最佳答案

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

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

就我而言,我必须创建一个 unix 可执行文件,并将 mono mkbundle 作为主要更改。

我写了一篇关于 macOS 中打包的文章,我在这里解释一下:https://www.theimpostersyndrome.dev/posts/macospackaging/

关于ios - macOS 应用程序崩溃并且不提示相机权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59158090/

相关文章:

iphone - 如何将我的 iphone 应用程序打包成 deb

sql-server - 如何向应用程序角色授予 db_owner 权限?

linux - Mercurial Web 推送权限被拒绝

ios - 在 Swift 中获取有关 HLS 段请求的通知

ios - 有没有什么方法可以在不中断 UI 的情况下实现 avaudiosession .duckothers。 swift 2.0

macos - `go get` 因某些 go 包的权限被拒绝而失败

c# - Objective-C 中的更新检查?来自 C#

linux - 如何从 docker 容器内部访问 OSX 主机上的 USB 驱动器?

php - 无法在 php 的 system() 中更改用户

ios - 如何在 Xcode 7 中为 Homekit 添加 app_name.entitlements 文件