Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 检查Mac上Electron中的用户权限_Macos_Permissions_App Store_Electron - Fatal编程技术网

Macos 检查Mac上Electron中的用户权限

Macos 检查Mac上Electron中的用户权限,macos,permissions,app-store,electron,Macos,Permissions,App Store,Electron,我已尝试向应用商店提交生成,但遇到以下问题: 他们说有些菜单项什么都不做。这些菜单操作是打开和保存文件,用于将文件读写到文件系统。我发现appreview团队在一个guest帐户上运行我的App,而用户没有访问文件系统的权限。由于权限限制,对话框提示不会显示 是否有一种方法可以检查用户权限,以便禁用菜单项?当然,最简单的方法是尝试执行需要提升权限的操作,如果无法执行,则捕获错误 例如,您说您正在执行“将文件读写到文件系统”,所以只要根据需要尝试在路径/文件上进行测试写入即可。e、 g fs.wr

我已尝试向应用商店提交生成,但遇到以下问题:

他们说有些菜单项什么都不做。这些菜单操作是打开和保存文件,用于将文件读写到文件系统。我发现appreview团队在一个guest帐户上运行我的App,而用户没有访问文件系统的权限。由于权限限制,对话框提示不会显示


是否有一种方法可以检查用户权限,以便禁用菜单项?

当然,最简单的方法是尝试执行需要提升权限的操作,如果无法执行,则捕获错误

例如,您说您正在执行“将文件读写到文件系统”,所以只要根据需要尝试在路径/文件上进行测试写入即可。e、 g

fs.writeFile(YOUR_PATH, 'testperms', { flag: 'wx' }, function (err) {
    if (err) {
      // handle/disable your menu items 
    }
});

我自己找到了解决办法。我的应用程序的授权文件丢失

您可以将其包括在以下内容中:

electron-osx-sign App.app --entitlements=build/parent.entitlements --entitlements-inherit=build/child.entitlements
我的权利文件如下所示:

家长权利

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.assets.movies.read-write</key>
    <true/>
    <key>com.apple.security.assets.music.read-write</key>
    <true/>
    <key>com.apple.security.assets.pictures.read-write</key>
    <true/>
    <key>com.apple.security.files.downloads.read-write</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
  </dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.inherit</key>
    <true/>
  </dict>
</plist>

更多信息。

谢谢,这是一个非常好的主意,但来得有点晚了。我找到了另一个解决方案,基于丢失的权利文件。我将为此写一个答案。有点无关:我们正在使用
sox
录制音频,并生成一个子进程。它在运行
electron.
时起作用,但在为mac编译应用程序时不起作用。添加权利和
com.apple.security.device.audio input
解决了这个问题