Skip to content

如果应用无法正常运行

Caldis_Chen edited this page May 21, 2021 · 3 revisions

无法启动

由于目前我们没有额外的需求加入苹果开发者计划, 因此目前发布于 Github Release 的包均未经过签名

因此在新版本的 macOS 系统中, 执行应用会被系统内置的 Gatekeeper 功能阻止 (也曾被称为 File Quarantine 功能), 这是正常现象

为了解决这个问题, 我们在这里提供几个可行的安全的解决方案让你执行 Mos (需要使用命令行)

手动覆盖安全性设置并放行应用

请参照官方指引 https://support.apple.com/zh-cn/guide/mac-help/mh40616/mac

删除文件的扩展属性以绕过 Gatekeeper 的检查

在 macOS 中, 任何通过网络下载的可执行文件都会被添加一段名为 com.apple.quarantine 的扩展属性, 其标识了文件下载的来源以及时间等信息, 如果该条目存在, Gatekeeper 将会检查其安全性, 并可能阻止其执行

在终端中, 进入 Mos.app 所在目录, 并输入以下代码

xattr -d com.apple.quarantine Mos.app

即可移除 Mos.app 文件的 com.apple.quarantine 扩展属性, 然后双击即可直接运行应用

更改 Gatekeeper 的检查级别

正常情况下 macOS 仅允许直接执行以下类型的应用

  • 来自 AppStore 或的应用
  • 已经过 Apple Developer Progam 的帐号签名的应用

在早期的 macOS 版本中, 你可以在 系统偏好设置\安全性与隐私 中直接将 Gatekeeper 设置为允许 所有来源 的应用安装

但在近期的版本中, 该选项是隐藏的, 你可以在终端中输入以下代码来设置 Gatekeeper

sudo spctl --master-disable

这下好了, Gatekeeper 将不会阻止任何应用运行

如果有必要, 你也可以在终端中输入如下代码恢复 Gatekeeper 的设置

sudo spctl --master-enable

如果您担心预编译文件的安全性, 您也可以自行审阅或编译代码, 我们也非常欢迎您贡献代码 !

关联阅读

https://support.apple.com/en-us/HT202491

https://eshop.macsales.com/blog/57866-how-to-work-with-and-around-gatekeeper

https://superuser.com/questions/28384/what-should-i-do-about-com-apple-quarantine

无法正确获取辅助功能权限

假设您已经在辅助功能中勾选了 Mos, 但应用仍然无法工作, 可以先尝试取消勾选, 再重新勾选一次

如果仍然无效, 也可以参考社区中给出的解决方案, 虽然我们不确定是否对你有用, 但不妨一试

  1. 关闭 Mos
  2. 系统设置 - 安全性与隐私 - 隐私 - 辅助功能,解锁设置,然后找到 Mos.app
  3. 先取消勾选 Mos.app,然后点下方的 - 号将其完全删除,然后上锁并关闭设置页面
  4. 重新启动 Mos,按提示重新勾选 Mos.app

Credit by @HunDunDM: https://github.com/Caldis/Mos/issues/394#issuecomment-836132924