Mac 应用程序反复请求访问权限

Posted

技术标签:

【中文标题】Mac 应用程序反复请求访问权限【英文标题】:Mac application asking for accessibility permission repeatedly 【发布时间】:2020-06-29 08:28:03 【问题描述】:

我创建了一个用 electron-vue 编写的 Mac 应用程序。 它需要键盘访问和屏幕录制访问。

理想情况下,当我给予许可时,它应该立即开始工作。

但我的应用有时会在重启后运行。 有时,即使我们已授予权限,它也会在每次重新启动后不断请求权限。

我无法理解做错了什么。

你能帮忙吗?

我的 package.json。

    "name": "pramod-dektop-creator",
    "version": "0.0.1",
    "description": "pramod-desktop-creator",
    "author": "Pramod <pramod@xyz.com>",
    "scripts": 
        "build": "node .electron-vue/build.js && electron-builder",
        "build:clean": "cross-env BUILD_TARGET=clean node .electron-vue/build.js",
        "build:dir": "npm run build:clean && node .electron-vue/build.js && electron-builder --dir",
        "build:web": "cross-env BUILD_TARGET=web node .electron-vue/build.js",
        "dev": "node .electron-vue/dev-runner.js",
        "pack": "npm run pack:main && npm run pack:renderer",
        "pack:main": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js",
        "pack:renderer": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js",
        "postinstall": "electron-builder install-app-deps",
        "rebuild": "electron-rebuild -f -w sqlite3"
    ,
    "main": "./dist/electron/main.js",

    "build": 
        "afterSign": "notarize.js",
        "asar": true,
        "productName": "pramod-dektop-creator",
        "appId": "org.pramod.desktop-creator",
        "protocols": 
            "name": "pramod-dektop-creator",
            "schemes": [
                "pramod"
            ]
        ,
        "directories": 
            "output": "build"
        ,

        "dmg": 
            "sign": false,
            "contents": [
                
                    "x": 410,
                    "y": 150,
                    "type": "link",
                    "path": "/Applications"
                ,
                
                    "x": 130,
                    "y": 150,
                    "type": "file"
                
            ]
        ,
        "mac": 
            "icon": "build/icons/icon.icns",
            "gatekeeperAssess": false,
            "entitlements": "info.plist",
            "entitlementsInherit": "info.plist",
            "hardenedRuntime": true
        ,
        "win": 
            "icon": "build/icons/icon.ico"
        
    ,
    "iohook": 
        "targets": [
            "node-72",
            "electron-70"
        ],
        "platforms": [
            "win32",
            "darwin",
            "linux"
        ],
        "arches": [
            "x64",
            "ia32"
        ]
    ,
    "license": "",

【问题讨论】:

我也遇到过这种情况,不知道是什么原因造成的,但我发现用户必须取消选中然后重新检查系统设置中的应用程序的可访问权限复选框才能按顺序键盘控制工作!这可能是一个mac问题?我在莫哈韦遇到了这个问题。 是的。我也在莫哈韦面临这个问题 你是在开发模式下运行这个应用还是打包后运行生产应用? 打包应用后尝试将你的应用安装到/Applications 然后会询问一次 @tpikachu 在我的情况下,我的应用程序已打包并安装在Applications 中,我认为每次更新 Electron 时都会出现此问题,但我不确定这是否确实是原因。 【参考方案1】:

请检查您是否已授予正确应用程序的权限。

怎么做?

转到Security &amp; Privacy 设置。

右键单击您的应用程序并选择选项。

它会将您带到获得许可的应用程序。

交叉检查它是否是您授予访问权限的正确应用程序。

对我来说,安装的应用程序与我允许的应用程序不同。

我删除了重复的应用程序并再次授予权限。之后它开始工作。

可能会也可能不会解决您的问题,但值得一试。

【讨论】:

以上是关于Mac 应用程序反复请求访问权限的主要内容,如果未能解决你的问题,请参考以下文章

Unity 之 发布Mac签名配置文件(macOS授予对沙盒应用程序访问网络 | 全磁盘访问权限)

Unity 之 发布Mac签名配置文件(macOS授予对沙盒应用程序访问网络 | 全磁盘访问权限)

苹果Mac 无法打开文档Word : 用户没有访问权限

将“所有人”权限从“无权访问”更改为“读写”Mac

Android Q (10) 请求访问所有存储的权限。范围存储

我的应用程序默认具有相机访问权限。如何关闭它并请求权限?