【问题标题】:Can't run app because of permission in macOS v11 (Big Sur)由于 macOS v11 (Big Sur) 中的权限,无法运行应用程序
【发布时间】:2021-02-26 18:06:25
【问题描述】:

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

您没有打开应用程序的权限

我认为这个应用程序来自未知的开发者。

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

spctl --master-disable

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

我也试过了:

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

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

应用程序因意外原因无法打开,error=Error Domain=NSOSStatusErrorDomain Code=-10826 "kLSNoLaunchPermissionErr: 用户无权启动应用程序(托管网络)" UserInfo={_LSFunction=_LSLaunchWithRunningboard, _LSLine= 2508,NSUnderlyingError=0x7fcb24c13ec0 {错误域=RBSRequestErrorDomain Code=5“启动过程中退出了启动进程。” UserInfo={NSLocalizedFailureReason=启动过程在启动过程中退出。}}}

还尝试禁用加密并运行:

csrutil authenticated-root disable

这是错误窗口:

【问题讨论】:

  • 请分享一些您尝试运行但没有成功的应用程序...
  • 如果您通过浏览器下载了您的 big sur 发送到隔离区,禁用运行:sudo xattr -dr com.apple.quarantine /path/to/app 然后正常打开您的应用程序,希望这能解决您的问题
  • 这对我有用
  • 对于所有使用codesign 的解决方案,请在此处查看@eskimo 的答案:You do not have permission to open the application “Eclipse”.
  • 出现,如果您以访客用户身份登录,请下载并打开一个应用程序。

标签: macos macos-big-sur


【解决方案1】:

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

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

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

【讨论】:

  • 这是唯一对我有用的东西。所有其他答案都假设它实际上是一个权限问题,但 Big Sur 不允许运行未签名的应用程序是一个问题(即使在系统偏好设置中打开了该选项)。
  • 这应该是公认的答案。这也是唯一对我有用的东西。
  • 这适用于我使用 Xcode 构建的 Catalyst 应用程序(调试)。 upx 方法不起作用。
  • 这对我也有用。但我想与其他人分享我未签名的 .app 文件,然后在这种情况下需要做什么。任何人都可以就此提出建议。谢谢@AlinNereid。
  • 这应该是公认的答案。它在 DBeaver 应用程序上对我有用
【解决方案2】:

打开终端或 iTerm 并输入 sudo chmod -R 755,然后将 .app 拖到窗口中,这会将完整路径带入终端或 iTerm。这对我有用,将-R 选项直接移到chmod 之后。

看起来像这样:

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

返回

【讨论】:

  • 在尝试了codesignxattr 之后,这个对我有用
  • 请为此答案添加解释。
  • 它应该做什么?有什么安全隐患(如果有的话)。请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。
  • 它确实对我有用!谢谢你:)
  • chmod 755 = (我的重点) "设置权限,用户/所有者可以读,可以写,可以执行。组可以读,不能写,可以执行。其他人可以读,不能写,可以执行。”
【解决方案3】:

这个错误我也遇到过同样的问题。我的DBeaver 在一周未使用后打开时不起作用:

您无权打开此应用程序。

我什至检查了系统偏好。它显示了安全性。 我目前的操作系统是 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 运行良好。

【讨论】:

  • 我在使用 DBeaver 时遇到了同样的问题,Step4 是完美的解决方案。谢谢!
  • 同样,我的问题是 DBeaver,这对我来说是正确的解决方案。赞成并感谢! ?
  • 这里一样,第 4 步有效
  • 是的,Big Sur 上的 DBeaver 也发生在我身上……我刚做了第 4 步,它就可以了。赞成
  • 这是唯一对我有用的东西。我认为这应该是公认的。 codesign --force --deep --sign - /Applications/DBeaver.app
【解决方案4】:

这似乎是您移动到应用程序目录的 .app 深处的文件之一的权限问题。

打开终端或 iTerm 并键入“chmod -R 755”并将 .app 拖到窗口中,这会将完整路径带入终端或 iTerm。

看起来像这样:

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

按回车

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

【讨论】:

  • chmod: -R: No such file or directory 当我直接在 .app 文件上尝试时
  • 给出的例子有点无效。正确的是chmod -R 755
  • 这对我有用(嗯,chmod -R 755 Path\to\app\file.app)。
  • 这适用于我的三星打印机无线设置应用程序。谢谢!
  • 令我惊讶的是,这适用于 Pixma MG 3051 打印机/扫描仪的 Canon IJScan16f 扫描仪驱动程序。 (小变化:我用sudo chmod -R a+x /System/Volumes/Data/Library/Image\ Capture/Devices/Canon\ IJScanner16f.app
【解决方案5】:

在我的情况下,问题与 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”

然后正常运行应用程序。

【讨论】:

  • 不适合我。 NotPackedException: not packed by UPX
  • 我不完全理解这个脚本的作用,但它适用于我的情况。多了解一点就好了。
  • @iamse7en 我遇到了同样的异常,但是当尝试运行该应用程序时,它突然起作用了!所以忽略我猜的异常
  • 这对我不起作用。它说 Unpacked 0 个文件。
  • 你怎么知道这个应用的二进制文件是否被UPX压缩过?
【解决方案6】:

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

我在“使用 Rosetta 打开”信息中复制并明确设置的通用二进制文件(终端)有这个问题,以运行 x86 工具,如Homebrew。从11.0.0升级到11.0.1后,x86版本的终端停止工作,出现上述错误。

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

【讨论】:

    【解决方案7】:

    我找到了解决办法:

    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
      

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

    【讨论】:

    • 这些是必需的步骤,包括最后一个。谢谢。
    【解决方案8】:

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

    来自Apple's official website

    App Store 中的所有应用都经过 Apple 签名,以确保它们没有被 滥用或篡改。 Apple 签署 Apple 随附的任何应用程序 设备。

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

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

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

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

    否则,您将很难享受 (?) 那个应用程序、Xcode 和签名的东西......

    【讨论】:

    • 我可以使用 upx 命令运行我的应用程序:但我尝试在 upx 之前和之后运行您的命令,但我总是看到:“状态:无签名”,即使应用程序在 upx 之后运行良好。所以这个命令无助于理解问题。
    • 即使在我使用自签名签名后,它也没有改变。
    【解决方案9】:

    你必须运行 SUDO xattr -d com.apple.quarantine 。重要的是不要忘记 sudo,否则它将不起作用。

    【讨论】:

    • 仍然对我不起作用,没有变化。尝试运行github.com/pixelomer/AltDeploy/releases
    • 这对我有用 giadamusic.com(我也运行过 chmod 和 upx,但直到这个命令才有效;不清楚这些是否有影响)
    • 这不断出现,但它从来没有为我解决任何类似的问题。只需xattr filename 会显示该属性是否已设置并可删除;对我来说,这从来都不是真的。
    【解决方案10】:

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

    下载macOS-GateKeeper-Helper

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

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

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

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

    【讨论】:

    • 太棒了!我为一些 Synergy 二进制文件尝试了几件事,并且此脚本中的自签名有效。
    • 这对我有用,已从隔离区中删除并自签名
    • 我们为什么要信任这个应用程序?
    【解决方案11】:

    sudo chmod -R 777 /app/to/path

    在尝试了所有答案后,这是唯一对我有用的方法。

    【讨论】:

    • 可能存在权限问题,但无论您希望完成什么,chmod 777 都是错误危险的。 在任何情况下,您都绝对不想将可执行文件或系统文件的写入权限授予所有用户。您将希望尽快恢复正常权限(对于您的用例,可能是chmod 755)并在尝试再次使用之前了解 Unix 权限模型。如果这种情况发生在可以访问 Internet 的系统上,请检查入侵者是否可以利用它来提升他们的权限。
    【解决方案12】:

    我们刚刚从功能中删除了应用内购买并且它起作用了(该应用是从公司网站 https://nektony.com/mac-app-cleaner 分发的)。

    实际上,它从项目文件中删除了“StoreKit.framework”。

    【讨论】:

    • 这个 Mac 应用程序清洁器是什么?它应该做什么?你能详细说明一下吗?
    • @PeterMortensen 通常它旨在从 Mac 上完全卸载应用程序,但它可用于通过重置应用程序和清除其临时文件来解决应用程序问题。 App Cleaner & Uninstaller 可以完美地找到 Mac 上所有应用程序的支持文件,甚至是已删除应用程序的剩余部分。
    【解决方案13】:

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

    【讨论】:

      【解决方案14】:

      对于我的团队来说,这是 Git 将 CRLF 添加到 Entitlements.plist 文件的问题。

      一旦我将 .gitattributes 文件修复为仅将 LF 与 p-list 文件一起使用,我构建了一个新应用程序并对其进行了代码签名并且它工作了——没有中止。我还必须确保 Jenkins 擦除了工作区,因为它一开始似乎没有修复文件。

      【讨论】:

        【解决方案15】:

        我遇到过类似的权限问题,但没有任何帮助。最后,重新安装我遇到问题的应用程序对我有帮助。

        我还是不知道为什么会出现这个问题。

        【讨论】:

          【解决方案16】:

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

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

          【讨论】:

          • “让 Mac 应用程序休息”是什么意思?你能详细说明一下吗?
          • 抱歉,打错了。我的意思是“测试”。
          【解决方案17】:

          检查哪个应用程序文件夹是您的应用程序,如果它不在您的用户文件夹中(您的大多数应用程序都在那里,例如 Google Chrome、FaceTime),请将应用程序移到那里并尝试再次打开它,这对我有用

          【讨论】:

            【解决方案18】:

            这些解决方案都不适合我。更新到 macOS v11.4 (Big Sur) 解决了我的问题。

            【讨论】:

              【解决方案19】:

              我尝试了很多不同的方法来解决问题,包括上面的方法,但都不起作用,然后:

              我只是卸载了应用,然后重新安装应用,就可以了!

              【讨论】:

                猜你喜欢
                • 2021-05-24
                • 1970-01-01
                • 2020-10-20
                • 2021-06-05
                • 1970-01-01
                • 2021-03-10
                • 1970-01-01
                • 1970-01-01
                • 2021-03-05
                相关资源
                最近更新 更多