【踩坑】最新亲测能用!修复MacOS安装软件时提示“应该移到废纸篓”并且无法打开软件

news2024/10/7 20:28:26

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

目录

网上方法的尝试

方法一:xattr

方法二:UPX

真的能用的方法

GateKeeper_Helper.command的内容


网上方法的尝试

方法一:xattr

以前的Mac版本可以通过以下方式来解开限制,可以先尝试一下:

sudo xattr -r -d com.apple.quarantine /Applications/Sketch.app

但新版本的Mac会报错没有权限:

方法二:UPX

也有方法说借助UPX来安装,具体来说:

brew install upx
sudo upx -d /Applications/Termius.app/Contents/MacOS/Termius

 但新版本的Mac依旧会报错:

真的能用的方法

1、首先下载这个脚本:macOS-GateKeeper-Helper: Simple macOS GateKeeper script.

2、授予可执行权限:

chmod +x GateKeeper_Helper.command

3、双击脚本运行,并选择“4”,按回车:

4、将要安装的app拖入(也可以直接输入路径),按回车:

5、安装成功,可以双击app运行了:

GateKeeper_Helper.command的内容

#!/bin/zsh

#Attribute
GITHUB_URL="https://github.com/wynioux/macOS-GateKeeper-Helper"
RELEASE_VERSION="v1.2.2"
ROOT_PASSWORD=0

# Color Set
# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White

# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White


# Functions
# Shows menu.
showMenu()
{
    echo "\n          GateKeeper Helper ${RELEASE_VERSION}"
    echo "          ${Blue}${GITHUB_URL}${Color_Off}\n"

    echo "${BGreen}Option 1: ${Green}Show GateKeeper Status${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} Check GateKeeper status.\n"

    echo "${BGreen}Option 2: ${Green}Enable GateKeeper${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} Enables GateKeeper."
    echo "       ${BCyan}>>${Color_Off} Best security.\n"

    echo "${BGreen}Option 3: ${Green}Disable GateKeeper${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} Completely disables GateKeeper."
    echo "       ${BCyan}>>${Color_Off} Note that doing this introduces a major security risk in macOS.\n"

    echo "${BGreen}Option 4: ${Green}Remove app from GateKeeper quarantine${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} Allows an individual quarantined app to run.\n"

    echo "${BGreen}Option 5: ${Green}Self-sign the app${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} If GateKeeper is on and your app quits unexpectedly, try self-signing.\n"

    echo "${BGreen}Option 6: ${Green}Quit${Color_Off}"
    echo "   ${BRed}Means:${Color_Off} Quit script.\n"
}

# Asks password.
askPassword()
{
    case $ROOT_PASSWORD in
        0)
            echo "${Cyan}Please provide your password to proceed, or press ^C to quit.${Color_Off}"
            ROOT_PASSWORD=1
        ;;
    esac
    
}

# Shows continue message.
continueMessage()
{
    echo "\nPress any key to continue."
	read
}

# Shows gatekeeper status.
showGateKeeperStatus()
{
    echo "${Green}You choose to show GateKeeper status.${Color_Off}"
	askPassword
	sudo spctl --status
	continueMessage
}

# Enables gatekeeper.
enableGateKeeper()
{
    echo "${Green}You chose to enable GateKeeper. Good for you!${Color_Off}"
	askPassword
	sudo spctl --master-enable
    echo "${Red}GateKeeper enabled.${Color_Off}"
    continueMessage
}

# Disables gatekeeper.
disableGateKeeper()
{
    echo "${Green}You chose to disable GateKeeper.${Color_Off}"
    echo -e "    ${Red}>> Danger!${Color_Off}"
	echo -e "       Disabling GateKeeper is a very bad idea and creates"
	echo -e "       a major security hole in macOS\n"
	askPassword
	sudo spctl --master-disable
    echo "${Red}GateKeeper disabled.${Color_Off}"
    continueMessage
}

# Removes an app from gatekeeper quarantine
removeAppFromGateKeeper()
{
    echo "${Green}You chose to remove the app from GateKeeper quarantine.${Color_Off}"
    read "?Drag & drop the app on this window and then press Return: " FILEPATH
	askPassword
    sudo xattr -rd com.apple.quarantine "$FILEPATH"
    if [ $? -eq 0 ]; then
        echo "${Red}App removed from quarantine.${Color_Off}"
    else
        echo "${Red}App could not be removed from quarantine!${Color_Off}"
    fi
    continueMessage
}

# Self-signs an app.
selfSignApp()
{
    echo "${Green}You chose to self-sign an app.${Color_Off}"
    read "?Drag & drop the app on this window and then press Return: " FILEPATH
	askPassword
	sudo codesign -f -s - --deep "$FILEPATH"
    echo "${Red}If you see - replacing existing signature - that means you are done!${Color_Off}"
    echo "${Red}Otherwise please try again, sometimes it works second time.${Color_Off}"
    continueMessage
}

# Shows quit message.
quitScript()
{
    echo "Quitting..."
    continueMessage
}

# Shows invalid option message.
showInvalid()
{
    echo "${Red}Invalid option: ${BRed}${SELECTED_OPTION}${Color_Off}"
    continueMessage
}

# Main function of the script.
startScript()
{
    while : 
    do
        clear
        showMenu

        read "?Please select an option: " SELECTED_OPTION

        case $SELECTED_OPTION in
            1)
                clear
                showGateKeeperStatus
            ;;

            2)
                clear
                enableGateKeeper
            ;;

            3)
                clear
                disableGateKeeper
            ;;

            4)  
                clear
                removeAppFromGateKeeper
            ;;

            5)
                clear
                selfSignApp
            ;;

            6)
                clear
                quitScript
                break
            ;;

            *)
                clear
                showInvalid
            ;;
        esac
    done
}

# Script starts here.
startScript

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从ChatGLM2-6B来看大模型扩展上下文和加速推理相关技术

ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性: 更强大的性能:基于 ChatGLM 初代模型的开发经验,全面…

【深入探索Docker】:开启容器化时代的技术奇迹

深入探索Docker 深入探索Docker:开启容器化时代的技术奇迹前言1. 容器化:实现快速部署和可移植性2. 虚拟化:提高安全性和可靠性3. 映像:打包应用及依赖项的模板4. 网络管理:连接容器和主机5. 持久化数据:保…

Linux 终端命令之文件浏览(3) less

Linux 文件浏览命令 cat, more, less, head, tail,此五个文件浏览类的命令皆为外部命令。 hannHannYang:~$ which cat /usr/bin/cat hannHannYang:~$ which more /usr/bin/more hannHannYang:~$ which less /usr/bin/less hannHannYang:~$ which head /usr/bin/he…

多个 el-select 下拉框调用同一个数组时,下拉框的值不能重复

实现的效果 多个下拉框,每个下拉框选中的值不能重复,选过的下拉值会被过滤 共用一个接口 realUserList , 里面是部门的人 四个下拉框必选,数据结构如下 我使用的方法是计算属性完成, 我是从vuex 里面的获取的数据( alreaySelectUser ), …

Linux MQTT智能家居(温度,湿度,环境监测,摄像头等界面布局设置)

文章目录 前言一、温度湿度曲线布局二、环境监测界面布局三、摄像头界面布局总结 前言 本篇文章来完成另外三个界面的布局设置。 这里会使用到 feiyangqingyun的一些控件库。 一、温度湿度曲线布局 TempHumtiy.h: #ifndef TEMPHUMTIY_H #define TEMPHUMTIY_H#include <…

Maven 基础学习及使用

Maven1 Maven简介1.1 Maven模型1.2 仓库 2 Maven安装配置3 Maven基本使用3.1 Maven 常用命令3.2 Maven 生命周期 4 IDEA使用Maven4.1 IDEA配置Maven环境4.2 Maven 坐标详解4.3 IDEA 创建 Maven项目4.4 IDEA 导入 Maven项目 5 依赖管理5.1 使用坐标引入jar包5.2 依赖范围 Maven …

UVA-1601 万圣节后的早晨 题解答案代码 算法竞赛入门经典第二版

GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 以三个点的当前位置作为状态&#xff0c;广度优先遍历&#xff0c;找到终点即为最短次数。 注意&#xff1a; 一次可以移动多个点&#xff0c;但是每个点只能移动一步。在同一次中&#xf…

人工智能监听——研究人员发现新的安全威胁

大学的一项新研究表明&#xff0c;人工智能 (AI) 可以通过按键声音识别密码&#xff0c;准确率超过 90%。 在通过 Zoom 等视频通话聊天时输入计算机密码可能会打开网络攻击的大门&#xff0c;一项新的研究表明&#xff0c;人工智能可以通过窃听打字声音来找出正在按下的按键。…

索引堆及其优化(Java 实例代码)

目录 索引堆及其优化 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 src/runoob/heap/IndexMaxHeap.java 文件代码&#xff1a; 索引堆及其优化 一、概念及其介绍 索引堆是对堆这个数据结构的优化。 索引堆使用了一个新的 int 类型的数组&#xff0c;…

JavaScript【BOM】

【BOM】 原创内容&#xff0c;转载请注明出处&#xff01; 一、BOM是什么 BOM&#xff08;Browser Object Model&#xff0c;浏览器对象模型&#xff09;是 JS 与 浏览器窗口交互的接口。 一些与浏览器改变尺寸、滚动条滚动相关的特效&#xff0c;都要借助 BOM 技术。 二、w…

Arduino+esp32学习笔记

学习目标&#xff1a; 使用Arduino配置好蓝牙或者wifi模块 学习使用python配置好蓝牙或者wifi模块 学习内容&#xff08;笔记&#xff09;&#xff1a; 一、 Arduino语法基础 Arduino语法是基于C的语法,C又是c基础上增加了面向对象思想等进阶语言。那就只记录没见过的。 单多…

【分布式】Viewstamped Replication Revisited

篇前感悟&#xff1a; 阅读分布式系统文章的意义其实并不在于你个人真正地去开发这样一个基于这种协议的系统&#xff0c;因为真正去开发一个高可用的分布式系统实在是太难了&#xff08;对我来说…&#xff09;更多的还是汲取其中的思想&#xff0c;包括设计思路&#xff0c;优…

高性能跨平台网络通信框架 HP-Socket v5.9.3

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4478351216.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v5.9.3 更新 一、主要更新 问题修复&#xff1a;通过 POST/PUT 等带有请求内容的 HTTP 方…

Vue主面板组件模板(简洁版)

文章目录 &#x1f412;个人主页&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;源码如下&#xff1a; &#x1f412;个人主页 &#x1f3c5;JavaEE系列专栏 &#x1f4d6;前言&#xff1a; 本篇博客主要以介绍【&#x1f380;主面板组件模板&#xf…

怎么才能突破认知?别灌鸡汤行吗

怎么才能突破认知&#xff1f;别灌鸡汤行吗&#xff1f; 趣讲大白话&#xff1a;大部分人得一步一步来 【趣讲信息科技254期】 **************************** 孔子说有三种情况&#xff1a; 1生而知之&#xff1a;就是天生就会 2学而知之&#xff1a;需要后天学习 3困而学之&am…

【计算机网络】——数据链路层

二、组帧 1、字符计数法 帧头部使用一个字符来表示帧的大小(包括第一个计数字符) &#xff08;此处一字符一个字节&#xff09; 2、字符填充收尾定界法 特定字符来定界帧的首和尾。若帧中数据段出现等同于特定字符的字符内容&#xff0c;前置一个转义字符。(类似于正则表达…

读发布!设计与部署稳定的分布式系统(第2版)笔记30_为部署而设计

1. 部署行为是系统生命的重要组成部分 1.1. 只编写代码是不够的&#xff0c;只要没有在生产环境中运行&#xff0c;一切都不算完成 1.2. 要想取得成功&#xff0c;需要早早地频繁部署软件 1.3. 设计易于部署的软件非常有必要 1.4. 零停机部署就是目标 2. 机器与服务 2.1.…

HTML详解连载(4)

HTML详解连载&#xff08;4&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽CSS定义书写位置示例注意 CSS引入方式内部样式表&#xff1a;学习使用 外部演示表&#xff1a;开发使用代码示例行内样式代码示例 选择器作用基础选择器标签选择器举例特…

Linux MQTT智能家居项目(LED界面的布局设置)

文章目录 前言一、LED界面布局准备工作二、LED界面布局三、逻辑实现总结 前言 上篇文章我们完成了主界面的布局设置那么这篇文章我们就来完成各个界面的布局设置吧。 一、LED界面布局准备工作 首先添加LED灯光控制的图标。 将选择好的LED图标添加进来&#xff1a; 图标可以…

gcc及其相关知识

目录 gcc工作流程 静态库的生成和使用&#xff08;该部分使用g进行代码的编译。 若使用gcc&#xff0c;也类似&#xff09; 动态库的制作和使用&#xff08;此处用gcc&#xff0c;g类似&#xff09; 动态库的命名规则 动态库的制作 动态库的使用 动态库和静态库的优缺点 静…