electron mac应用在安全性与隐私授权后,点击强制退出,应用弹出异常退出报告提示

一. 背景

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
com.net.app -- 为electron-builder打包 appId指定的值,即打包后的info.plist中的 Bundle identifier对应的value值

猜你喜欢

转载自blog.csdn.net/weixin_43398820/article/details/110094181