一. 背景
mac app因为要获取系统的一些权限(例如麦克风和屏幕录制权限)才能正常运行,在手动授权后,会强制退出当前运行的app,app退出后系统弹出了异常退出报告,具体异常信息如下:二. 解决
系统强制退出时(或任务管理器中直接终止一个进程),应用程序因为资源没有及时释放等原因导致程序异常退出。 系统会抛出SIGABRT的信号,可以捕获abort信号,以便释放资源。 electron app api中有quit事件可以监听到abort信号 app.on('quit',() => {
if (process.platform == 'darwin') {
//做一些销毁,回收操作,防止资源没有释放导致应用异常退出
}
})
PS: macos 在安全性与隐私设置中清除已授权的常用命令
例如:
- 清除麦克风权限已授权的所有应用:tccutil reset Microphone
- 清除屏幕录制权限已授权的所有应用: tccutil reset ScreenCapture
- 清除指定应用的所有权限: tccutil reset All com.net.app
- 清除指定应用的屏幕录制权限: tccutil reset ScreenCapture com.net.app