systemPreferences.askForMediaAccess('microphone')
执行后,电子应用程序崩溃
以下是主要项目依赖项:
package.json
"electron": "6.0.11",
"electron-builder": "21.2.0",
"electron-reload": "1.5.0",
本地环境
我在本地运行电子
electron .
在我的主脚本文件中:
...
win.loadURL(format({
pathname: join(__dirname, 'dist/index.html'),
protocol: 'file:',
slashes: true,
hash: '/setup/test-code'
}));
...
// when script below is executed, application is crashed.
ipcMain.on('request-mic', async (event, serviceName) => {
const isAllowed: boolean = await systemPreferences.askForMediaAccess('microphone');
event.returnValue = isAllowed;
});
为生产而构建(有效)
构建脚本:
electron-builder build --mac
electron-builder.json
"mac": {
"icon": "dist",
"extendInfo": {
"NSMicrophoneUsageDescription": "text for mic access"
},
"target": [
"dmg"
]
},
问题:如何修复为本地开发运行的脚本? 崩溃报告:
Process: Electron [30035]
Path: /Users/USER/*/Electron.app/Contents/MacOS/Electron
Identifier: com.github.Electron
Version: 6.0.11 (6.0.11)
Code Type: X86-64 (Native)
Parent Process: ??? [30034]
Responsible: Electron [30035]
User ID: 501
Date/Time: 2019-10-08 19:15:09.237 +0300
OS Version: Mac OS X 10.14.6 (18G95)
Report Version: 12
Bridge OS Version: 3.6 (16P6571)
Anonymous UUID: B07CBEBB-07F2-C6D0-1B58-F1A8AD362A4F
Sleep/Wake UUID: F5422300-C6F0-4EC3-BE17-5E7C8539988F
Time Awake Since Boot: 210000 seconds
Time Since Wake: 17000 seconds
System Integrity Protection: enabled
Crashed Thread: 3 Dispatch queue: com.apple.root.default-qos
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace TCC, Code 0x0
Thread 0:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff629bb22a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff629bb76c mach_msg + 60
2 com.apple.CoreFoundation 0x00007fff369311ee __CFRunLoopServiceMachPort + 328
3 com.apple.CoreFoundation 0x00007fff3693075c __CFRunLoopRun + 1612
4 com.apple.CoreFoundation 0x00007fff3692febe CFRunLoopRunSpecific + 455
5 com.apple.HIToolbox 0x00007fff35b8f1ab RunCurrentEventLoopInMode + 292
6 com.apple.HIToolbox 0x00007fff35b8eee5 ReceiveNextEventCommon + 603
7 com.apple.HIToolbox 0x00007fff35b8ec76 _BlockUntilNextEventMatchingListInModeWithFilter + 64
8 com.apple.AppKit 0x00007fff33f2779d _DPSNextEvent + 1135
9 com.apple.AppKit 0x00007fff33f2648b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1361
10 com.apple.AppKit 0x00007fff33f205a8 -[NSApplication run] + 699
11 com.github.Electron.framework 0x000000010f150afc 0x10ccf4000 + 38128380
12 com.github.Electron.framework 0x000000010f14f638 0x10ccf4000 + 38123064
13 com.github.Electron.framework 0x000000010f0f2068 0x10ccf4000 + 37740648
14 com.github.Electron.framework 0x000000010f0c3dc7 0x10ccf4000 + 37551559
15 com.github.Electron.framework 0x000000010e55a9db 0x10ccf4000 + 25586139
16 com.github.Electron.framework 0x000000010e55a83d 0x10ccf4000 + 25585725
17 com.github.Electron.framework 0x000000010e55c1c2 0x10ccf4000 + 25592258
18 com.github.Electron.framework 0x000000010e557836 0x10ccf4000 + 25573430
19 com.github.Electron.framework 0x000000010e42c515 0x10ccf4000 + 24347925
20 com.github.Electron.framework 0x000000010e42c101 0x10ccf4000 + 24346881
21 com.github.Electron.framework 0x00000001107bfb90 0x10ccf4000 + 61651856
22 com.github.Electron.framework 0x000000010d6b9594 0x10ccf4000 + 10245524
23 com.github.Electron.framework 0x000000010ccf6994 AtomMain + 84
24 com.github.Electron 0x000000010ccbfa10 0x10ccbe000 + 6672
25 libdyld.dylib 0x00007fff628863d5 start + 1
Thread 1:
0 libsystem_pthread.dylib 0x00007fff62a793f0 start_wqthread + 0
Thread 2:
0 libsystem_pthread.dylib 0x00007fff62a793f0 start_wqthread + 0
Thread 3 Crashed:: Dispatch queue: com.apple.root.default-qos
0 libsystem_kernel.dylib 0x00007fff629d9016 __abort_with_payload + 10
1 libsystem_kernel.dylib 0x00007fff629d45db abort_with_payload_wrapper_internal + 82
2 libsystem_kernel.dylib 0x00007fff629d460d abort_with_payload + 9
3 com.apple.TCC 0x00007fff5d1b7091 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 163
4 com.apple.TCC 0x00007fff5d1b6fee __TCCAccessRequest_block_invoke.85 + 629
5 com.apple.TCC 0x00007fff5d1b505d __tccd_send_message_block_invoke + 231
6 libxpc.dylib 0x00007fff62abde2f _xpc_connection_reply_callout + 36
7 libxpc.dylib 0x00007fff62abddb6 _xpc_connection_call_reply_async + 86
8 libdispatch.dylib 0x00007fff628396a7 _dispatch_client_callout3 + 8
9 libdispatch.dylib 0x00007fff6284f977 _dispatch_mach_msg_async_reply_invoke + 311
10 libdispatch.dylib 0x00007fff628480eb _dispatch_kevent_worker_thread + 1366
11 libsystem_pthread.dylib 0x00007fff62a7961b _pthread_wqthread + 431
12 libsystem_pthread.dylib 0x00007fff62a793fd start_wqthread + 13
答案 0 :(得分:1)
您可以在终端中运行启动应用程序。 权限赋予终端,应用程序在终端中运行,因此应用程序可以使用
答案 1 :(得分:0)
好的,所以我找到了根本原因。 我正在从Webstorm终端运行应用程序。 如果我从常规终端运行它,它将按预期运行。
看起来在第一种情况下,授予了Webstorm权限,而不是授予了电子助手应用程序