由于 macOS v11 (Big Sur) 中的权限,无法 运行 应用程序

Can't run app because of permission in macOS v11 (Big Sur)

我昨天安装了 macOS v11 (Big Sur),从那以后我就不能 运行 一些旧的应用程序了。这是我收到的消息:

You do not have permission to open the application

我认为此应用程序来自未知开发者。

我尝试了在 macOS v10.15 (Catalina) 中有效的不同方法,例如:

spctl --master-disable

或者我也尝试禁用 SIP 和 AMFI。

我也试过:

sudo xattr -rd com.apple.quarantine /Applications/my_app.app

如果我 运行 来自终端的应用程序,这是我得到的错误的文本版本:

The application cannot be opened for an unexpected reason, error=Error Domain=NSOSStatusErrorDomain Code=-10826 "kLSNoLaunchPermissionErr: User doesn't have permission to launch the app (managed networks)" UserInfo={_LSFunction=_LSLaunchWithRunningboard, _LSLine=2508, NSUnderlyingError=0x7fcb24c13ec0 {Error Domain=RBSRequestErrorDomain Code=5 "Launched process exited during launch." UserInfo={NSLocalizedFailureReason=Launched process exited during launch.}}}

还尝试禁用加密和 运行:

csrutil authenticated-root disable

这是错误 window:

您移至应用程序目录的 .app 深处的文件之一似乎存在权限问题。

打开终端或 iTerm 并输入“chmod -R 755”并将 .app 拖入 window,这会将完整路径带入终端或 iTerm。

看起来像这样:

chmod -R 755 Path\ to\ app\ file.app

按return

然后,您可以正常打开应用程序文件,但会失败,因为网守将无法验证该文件。从那里,进入“系统偏好设置”中的“安全和隐私”,然后单击以允许应用程序打开。

我遇到的问题与 Big Sur 问题有关,其中 UPX 压缩二进制文件无法正确识别,因此未执行时出现权限错误。

这里有更多信息:UPX compressed application fails to start on latest macOS release: Big Sur 11.01 #424

所以解决方案是用 UPX 解压二进制文件,然后 运行 正常解压。

使用 Homebrew 安装 upx(可执行 brew):

brew install upx

现在运行这个命令:

sudo upx -d /Applications/my_app.app/Contents/MacOS/my_app

(请注意,您必须指定完整的二进制路径。)

您应该使用二进制文件的路径而不是“/Applications/my_app.app/Contents/MacOS/my_app”

然后运行应用正常

您必须 运行 SUDO xattr -d com.apple.quarantine 。重要的是你不要忘记 sudo 否则它不会工作。

我遇到了错误“终止原因:命名空间代码设计,代码 0x1”的问题,我在该机器上再次签名后成功打开了应用程序,命令如下:

codesign --force --deep --sign - /Applications/AppName.app

没有其他解决方案适合我。

打开 Terminal 或 iTerm 并输入 sudo chmod -R 755,然后将 .app 拖到 window 中,这会将完整路径带入 Terminal 或 iTerm。这对我有用,直接在 chmod.

之后移动 -R 选项

它看起来像这样:

sudo chmod -R 755 Path\ to\ app\ file.app

return

此答案仅适用于一组特定的应用程序

我遇到了一个通用二进制文件(终端)的问题,我复制了它并在信息“使用 Rosetta 打开”中将其明确设置为 运行 x86 工具,例如 Homebrew。从 11.0.0 更新到 11.0.1 后,终端的 x86 版本停止工作并出现上述错误。

我只需要删除副本,创建终端的另一个副本并再次启用 Rosetta。

首先确定你的应用签名是有效的:

来自Apple's official website

All apps in the App Store are signed by Apple to ensure they have not been misused or tampered with. Apple signs any app that comes with Apple devices.

要检查这一点,您可以在终端中输入以下内容(Folx.app 的路径仅作为示例,您应该将其替换为您想要的应用程序):

pkgutil --check-signature /Applications/Folx.app

如果您收到“无效签名”响应,则如下所示:

那么您的应用程序可能以某种 hacky 方式安装! 现在最简单的方法是卸载该应用程序并重新安装。

否则,您将很难享受 () 该应用程序、Xcode 和签名内容...

这是唯一适用于我的情况的解决方案。

下载macOS-GateKeeper-Helper.

  • 双击打开 GateKeeper_Helper.command(如果它说不受信任的开发者,继续 运行 从设置 - 安全和隐私 - 常规 - 仍然打开)

  • Select 选项 4(从 GateKeeper 隔离中删除应用程序)

  • 从 Applications 文件夹中拖放应用程序文件,点击 Return 键,然后输入您的密码

  • 您会看到一条消息,例如“应用程序已从隔离区中删除”。而已。尝试像往常一样打开应用程序。

我在发送给同事测试我开发的 Mac 应用程序时遇到了这个问题。他尝试了这个论坛上的一些建议,但它们似乎没有用(而且我们都在 Intel 上,所以 Rosetta 提示不适用)。

最终对我有用的是创建一个空白磁盘映像,然后将 .app 文件添加到映像中,然后将磁盘映像发送给他。似乎问题出现在压缩 .app 文件时,首先将文件添加到磁盘映像似乎有助于防止出现此问题。

如果您要将 Xcode 应用程序上传到 GitHub 版本,请确保先在您的计算机上压缩它,不要让 GitHub 压缩它。

对于我的团队,结果证明这是 Git 将 CRLF 添加到 Entitlements.plist 文件的问题。

一旦我修复了 .gitattributes 文件只使用 LF 和 p-list files, I built a new app and had it codesigned and it worked--no aborts. I also had to make sure Jenkins 擦除工作区,因为它一开始似乎没有修复文件。

我也遇到过同样的问题。我的 DBeaver 在一周未使用后打开时无法正常工作:

You do not have permission to open this application.

我什至检查了系统偏好设置。它显示安全接受。 我当前的 OS 是 macOS v11 (Big Sur)。

所以我在终端里试了一下:

第 1 步:sudo spctl --master-disable -> 无效

第 2 步:xattr -rd com.apple.quarantine DBeaver -> 无效

第 3 步:然后我在终端中打开 DBeaver 运行 sudo chmod -R 777 -> 再次,它没有工作

第 4 步:我终于尝试了:

codesign --force --deep --sign - /Applications/DBeaver.app

哇,效果很好。现在我的 DBeaver 运行良好。

我找到了解决方案:

  1. 您需要退出应用程序, (如有必要,安装 Xcode 工具):

    xcode-select --install
    
    sudo codesign --force --deep --sign - /Applications/YourAppName.app
    
  2. 将应用移至隔离区:

    sudo xattr -d -r com.apple.quarantine /Applications/YourAppName.app
    
  3. 转到 /Applications/YourAppName.app/Contents/MacOs 并使文件在内部可执行:

    sudo chmod +x Script_name
    

这对我有用并且应用程序启动了。