解决 Catalina xxx.app 已损坏移到废纸篓问题

此问题在 Catalina 相关问题解决 中出现过,现添加了执行脚本

问题描述

macOS 每次版本升级后,打开旧 app 提示

xxx.app 已损坏,无法打开。您应该将它移到废纸篓。

解决方法

方法一

参见 macOS 允许任何来源,开启设置中的【任何来源】选项,复读一遍方法:

  1. 打开 终端.app,执行指令
    sudo spctl --master-disable
  2. 进入【系统偏好设置 – 安全性与隐私】,选择【任何来源】

显然此方法并没有解决我的问题,见方法二

方法二

麻烦一点,需要每个 app 都设置一遍

  1. 打开 终端.app,执行指令
    sudo xattr -r -d com.apple.quarantine [your app path]

    其中,[your app path] 为对应应用的路径,通常在 /Application 下

为方便每次运行,编写了下面的脚本:

#! /bin/sh
if [ -z "$1" ]
then
    echo "Usage appreg [the application path (normally is /Application/xxx.app)]"
else
    sudo xattr -r -d com.apple.quarantine "$1"
fi

新建 appreg 文件(没有后缀),复制粘贴上面的代码,执行指令

sudo chmod +x [your path here]/appreg

获取执行权限,执行指令

sudo ln -s [your path here]/appreg /usr/local/bin/appreg

将脚本链接到 /usr/local/bin 下

之后在 终端.app 中执行指令

appreg /Application/xxxx.app

即可解决该 app 无法打开的问题

效果

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据