Mac实用技巧之:三种安装/卸载/更新软件的方式及其优缺点

Mac实用技巧之:三种安装/卸载/更新软件的方式及其优缺点

macOS软件的本质

非常重要: 只有理解了软件的本质,才更容易理解它的安装和卸载,所以下面的这段关于macOS软件的本质的说明,必须认真看完。

macOS软件扩展名

扩展名就是文件名后面的.xxx,比如图片是.jpg.png等等,又比如windows软件的扩展名是.exe,那么macOS软件的扩展名是什么呢?

首先,我们来看看应用程序里的软件,可以看到所有软件都是.app格式的,如果你看不到扩展名,可以打开一下:访达偏好设置高级显示所有文件扩展名
image.jpg

由上可知,macOS的软件都是.app格式的,事实上,绝大多数macOS的软件都是.app格式的,但有少数不是,比如我所知道的flash player和launchrocket,它们是以偏好设置的方式安装的,安装后不会出现在“应用程序”文件夹中,而是显示在“系统偏好设置”里(如下图)
Xnip2019-06-23_12-35-57.jpg

它们安装的目录,是在/Library/PreferencePanes/下(全局,所有用户都可用)或~/Library/PreferencePanes/(当前用户拥有,其他用户不可用),它们的后缀为.prefPane,意思是“Preferences Panel”(即“偏好设置面板”)。

有界面的软件格式,目前我知道的除了.app外,就只有.PrefPane了,而且这种是极少的,所以几乎所有的macOS软件都是.app格式的。

当然我说的“几乎所有的macOS软件都是.app格式的”,是指有界面的软件,至于那些没有界面的命令行软件,一般人用不到,用的到的人应该都懂,命令行软件是另一类软件,它是没有扩展名的,一般用户可以不用理它。

.app的本质

由前面可知,macOS绝大多数软件的格式都是.app,那么.app究竟是什么呢?事实上,.app格式的本质是一个文件夹,这也是为什么你想直接把你安装好的app发给别人发不了的原因(压缩一下就可以发),你可以右击它→显示包内容来查看它里面有什么。
image.jpg

点击“查看包内容”里面的内容,可见它有一个“Contents”文件夹包含了所有文件,然后里面又有很多子文件夹
image.jpg

.PrefPane格式,其实它本质也是一个文件夹,只不过它是作为偏好设置使用的,所以写成另一个扩展名,而且这种格式极少,也许还有少数其它的我还不知道的格式,但万变不离其宗,那就是:它们的本质都是文件夹!

安装软件的方法

这里只说方法,具体操作请看后面的内容。

  • 1、在AppStore安装;
  • 2、下载安装包安装;
  • 3、使用命令安装。

直接在App Store安装

这个是最简单的了,打开App Store,在里面搜索到你要安装的软件,点安装即可(当然要先登录)
ScreenFlow1232.gif

但是,我必须强调一下,对于用习惯iPhone而又第一次用Mac的童鞋,他/她可能理所当然的认为Mac的所有软件也都是从AppStore安装的,就像iPhone那样,事实上恰恰相反,Mac上绝大多数软件都不是在AppStore上安装的,即使AppStore上有!

原因有几个:

  • 1、AppStore有沙盒机制,会阻止一些软件实现它本身该有的功能,所以很多软件在AppStore上根本没有,比如Adobe系列软件,什么PS,AI,Pr,AE等等;
  • 2、收费软件在AppStore上会被苹果抽成,这些软件公司不愿意在AppStore上放自己的软件;
  • 3、AppStore要审核,速度很慢,对于要快速更新版本的软件来说,它等不及AppStore那繁琐的审核;
  • 4、重点:很多收费软件有破解版,AppStore都是正版的要收费的,有些软件还非常贵,每个大版本都收费(比如Parallels Desktop),所以即使AppStore上有,你也不一定要去AppStore下载,而是去网上的网站下载自己安装(比如去 xclient.info)。

有人可能要问: 软件不在AppStore安装,那要怎么安装?
答: 下载软件安装包自己安装!

然后你们的下一个问题肯定是:在哪儿下载?
答: 下载的地方不一定,要看具体的软件!有些软件本身的官网会提供安装包下载,你直接去下载就行。对于破解软件,有很多提供破解软件下载的网站(比如xclient.info),这种网站属于软件分享网站,所以它并不是唯一的,有很多人做这种网站,原因是可以挂广告有收益,这个可以自己问别人或者网上搜搜。

然后你们肯定还会问:下载后怎么安装?
答: 这个下边有说到,自己往下看。

可能还会有人问: AppStore安装的在AppStore点更新就行,自己下载安装的要怎么更新?
答: 有些软件自己有做更新功能,你点软件的更新就行,比如QQ、微信、QQ音乐等等;有些开发者比较懒,他没做更新功能,你无法在软件上点击某个按钮来更新,这时你只能重新下载最新版,重新安装(覆盖掉原来的就好);还有就是破解版的软件,就算软件本身自带更新功能,你也不能用,因为你本身就用的不是正版,你一更新就更新成正版了,就又要你激活了,所以破解版的软件你要更新,其实就是要重新下载一个新版本重新安装。

使用安装包安装

前面说过,macOS的软件(或者叫“应用程序”/App)本质是一个文件夹,只不过macOS能识别.app扩展,并自动读取它里面的.icns图标显示为App图标。

而文件夹是不方便在网络上传输的,我们从网上下载任何的软件也好,其它文件也好,如果它不是单个文件,那么都会被压缩成一个压缩包,比如.zip.rar.tar.gz.tar.bz2等等,其实这样做的根本原因只有一个,那就是让一个文件夹变成一个文件,以方便上传和下载。

其实除了前面说的格式外,macOS还有一种非常常见的“把一个/多个文件夹”变成一个文件的方法,那就是你们很多人可能已经见过的,甚至很常见的.dmg格式,当然还有另一种比较少见的格式,叫.pkg

所以,总结起来,macOS的软件安装包,有以下几种格式

  • dmg
  • pkg
  • 压缩包(.zip.rar.tar.gz.tar.bz2都属于压缩包格式)

而所谓的“安装”软件,其实就是把xxx.app这个文件夹从包里拿出来,然后放到访达的“应用程序”文件夹里!怎么拿出来呢?对于.zip.rar.tar.gz.tar.bz2这些压缩格式,双击解压即可,然后把解压出来的“xxx.app”移动到“应用程序”文件夹就行。

而对于.dmg格式,由于它不是压缩包格式,所以没有“解压”的说法,dmg是disk image的缩写,中文翻译过来叫“磁盘镜像”。这种镜像文件,双击打开就会像插入了一个U盘(或移动硬盘)一样,打开之后,我们将里面的“xxx.app”拖动到访达的“应用程序”文件夹就可以。

事实上绝大多数dmg镜像打开之后,它自带一个“应用程序”快捷方式(macOS上叫“替身”),我们一般都把它移动到这个“应用程序替身”上,事实上这个“替身”就是访达的“应用程序”文件夹,你移到这个“应用程序替身”上,跟移到访达中的“应用程序”文件夹是完全一样的。另外,由于dmg镜像打开后是像插入了一个u盘(或移动硬盘),所以我们使用完后,要把它“推出”,在桌面右击推出或在“访达”的侧边栏推出都可以。

安装“安装包格式为.dmg”的软件

  • 其实前面已经说过,就是双击xxx.dmg,打开之后把里面的xxx.app拖动到它旁边的“应用程序”快捷方式上就行了
    install software on mac.gif
  • 有些dmg镜像打开后,里面只有一个xxx.app,但没有“应用程序”快捷入口,也就是你没地方可拖,怎么办?其实那个“应用程序”快捷入口只是一个快捷方式,没有这个快捷方式你就自己手动拖动到访达的“应用程序”目录里也是一样的,你可以试试那些有“应用程序”快捷入口的dmg,在你把.app程序拖入“应用程序”里的时候,拖到它上方停留一会儿,不要放手,一会儿访达的“应用程序”界面就会自动打开。
  • 少部分虽然打开dmg镜像后也是.app格式程序,但它却不是直接拖到『应用程序』文件夹里就就,而是要双击安装,比如『各种输入法软件』,因为输入法是系统级的,输入法其实是被安装到/Library/Input Methods/目录下的,但它的本质还是.app格式的
    输入法的安装.gif
  • 另外在我们双击打开dmg磁盘镜像时,它会挂载到了系统上(在访达/Finder)左侧可以看到(在桌面也能看到有一个图标),类似于插了一个U盘/移动硬盘,所以在安装完软件后,要记得在『访达/Finder』左侧那里点击那个向上的三角图标把dmg『推出』,或者右击它然后选择『推出』,又或者也可以到桌面找到对应图标右击选择『推出』,也可以选中图标后按command+E推出(E表示Eject,弹出的意思),这相当于windows的『弹出』U盘/移动硬盘。

关于dmg,可以再看看这篇文章:为什么 MACOS 安装 DMG 可以一拖了事,而 WINDOWS 下大部分软件必须要启动安装程序?

安装“安装包格式为.pkg”的软件

pkg是package(程序包的意思),pkg格式的软件一般需要比较大的系统权限,属于系统级程序,这种软件比较像windows的软件安装方式,需要你先双击打开它,然后点击下一步下一步这样安装(但不要更改它的安装路径),而且一般需要输入密码获取系统权限,但它的“下一步”非常少,不会像windows那样下一步个没完的。

安装“安装包格式为压缩包”的软件

常见的压缩包格式有.zip.rar.tar.gz.tar.bz2.7z等等,当然还有其它的压缩包格式,我就不一一列举。安装方式非常简单,双击解压出xxx.app,然后把解压出来的“xxx.app”移动到访达中的“应用程序”文件夹就行。

安装格式为.prefPane的软件

前面已经说过,这种软件是作为“偏好设置”的扩展,它的后缀是.prefPane,当然你下载下来可能也是压缩包,需要先解压出来,然后双击xxx.prefPane就会弹出窗口问你只安装给当前用户,还是让所有用户都能用

就是安装完成后,它不会出现在“应用程序”里面,而是在系统偏好设置里面,比如flash player和launchrocket:
Xnip2019-06-23_12-35-57.jpg

他们安装的目录,是在/Library/PreferencePanes/下(全局,所有用户都可用)或~/Library/PreferencePanes/(当前用户拥有,其他用户不可用)。

这种卸载的话,目前我只知道如果你用brew install xxx方式安装的,你可以用brew remove xxx来卸载,但如果你是用安装包安装的,那么就只能看安装包中是不是有卸载工具,或者自己去安装目录中删除也行。

使用命令安装

1、使用Homebrew安装

这种安装方式一般是高级用户使用(比如IT从业人员),一般用户不需要掌握,或者有时候需要使用它安装一些东西,也只需要按网上的安装方法执行命令即可。

这种安装方式一般是安装一般编程方面的软件(一般这种软件没有界面),要使用Homebrew,先执行以下命令安装Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后可以使用brew search xxx搜索软件,搜索到软件之后,用brew install xxxx安装软件。另外,Homebrew也可以安装有程序界面的应用程序,比如Chrome浏览器,比如Sublime text,它的用法是brew cask install xxxx,使用方法详见Mac安装Homebrew并更换国内镜像源

2、还有一种是MacPorts

与homebrew类似,但它不会复用系统已有资源,都是重新编译,所以用它安装程序比较占空间比较臃肿,网上都不太建议用这种方式,当然也有少部分人用!

3、源码编译

这种方式IT从业人员专用,一般用户不需要了解,其实就连IT从业人员也比较少用(相对前面的方法)。

优缺点及卸载方式

App Store安装方式

优点

  • 简单方便,只需要在App Store上搜索到需要安装的软件,点击安装就好了!
  • 安全,App Store上的软件都给过苹果官方审核,并且软件是在苹果的沙盒中运行,无法对系统造成破坏,也无法偷偷非法上传一些数据(据说国内大部分软件都会偷偷上传一些数据,但一般来说无所谓啦,大家都这么用)。

缺点

  • 也是因为在沙盒中运行的原因,因为沙盒对软件有比较大的限制,所以软件在沙盒中运行未必能发挥它的全部功能,有些软件因为需要较大的系统权限,干脆就不放入App Store中了,直接在官网提供dmg安装镜像;
  • 下载速度慢,有时候在AppStore下载软件会很慢,可能你下载dmg安装包早下载好了,AppStore还没下载完(现在国内iCloud被云上贵州接管后,情况好很多了);
  • 更新慢,App Store需要审核,如果它认为软件有什么问题还需要重新修改重新审核,所以App Store版本比下载安装包的版本更新慢;
  • 收费软件在AppStore上支付,是要被苹果抽成的,但软件开发公司有时候不愿意被抽成,所以软件公司不愿意把软件放在AppStore上,而是放在官网上让用户自己下载安装;
  • 收费软件在App Store肯定是要收费的,而下载安装包则有些网站(如xclient.info)提供破解版的。

卸载方式

  • 在『启动台(Launchpad)』中鼠标长按软件图标(按到它害怕的发抖为止),即会变成抖动的图标,点击左上角的叉即可删除;
  • 或者在『启动台(Launchpad)』界面下,按住option键,程序图标也会变成抖动的可删除的状态,删除要卸载的软件即可(更方便)。

注意,下图的两点:

  • 只有一个软件出来叉,其他三个没有出来,是因为他们不害怕你,所以没有叉吗?当然不是!那是因为出来叉的那个软件是App Store安装的,其他两个是下载安装包安装的,所以不会出来叉
  • gif图中第一个软件的叉后来闪了几下,那是我在演示option键,按着option就会出来叉,放开,叉就消失
    uninstall software.gif

安装包安装方式

优点

  • 更新快,不需要等待苹果官方审核,直接发到自己的官网上即可;
  • 大型软件通常是通过自己下载安装包的方式安装的(当然也可能有安装器,比如Adobe系列软件,Adobe就专门做了一个安装器)。
  • 可下载一些破解版软件。

缺点

  • 相对来说比较麻烦一点;
  • 如果是破解软件,有可能被后台偷偷上传一些数据(说实话破解软件就可能被上传,目前破解软件一般是TNT团队破解的,应该不至于偷偷上传隐私吧,反正我用了几年也没啥感觉);
  • 有可能系统会遭到软件的破坏(这种情况应该很少,我用六年没遇到过,而且我没装过杀毒软件,事实上macOS也不需要装杀毒软件)。

卸载方式

  • 只要是安装到『应用程序』里的,自己去『应用程序』文件夹直接删除对应的软件即可,可以鼠标右键删除,也可选中后按command+Delete(但这样会有一定的垃圾留下).
  • 如果后悔不想删除了,可以直接在删除软件的地方command+Z返回,也可以去废纸篓右击→放回原处。值得一提的是,如果你在废纸篓中用comamnd+Delete删除一个文件,其实并不是我们想像的『永久删除』,而是把文件『放回原处』,如果要用快捷键删除,应该是按command+shift+delete,但即使这样,Mac还是会弹出提示,问你是否真的要删除,可见对于文件Mac还是很谨慎的。如果你真的不想提示删除那个文件,那你可以按option+command+shift+delete来直接不提示删除。
    ScreenFlowdde.gif

  • 如果是pkg,或者少部分下一步下一步这样安装的.app软件,卸载都是需要用软件自带的卸载工具,有可能打开软件后,有一个菜单选项是『卸载』,有可能卸载程序是在dmg包里面,如果你把dmg包删除了,那你就无法卸载了,要卸载的话,再去下载回来,然后打开里面的卸载程序就可以卸载了。

  • 借助第三方卸载软件
    推荐免费卸载软件:AppCleaner,可以开启它的“Smart Delete”,这样删除的时候也是直接在“应用程序”里直接删除,它是AppCleaner会监控到你在删除那个app,并阻止直接删除,而是弹出一个窗口,列出该软件除了软件本体以外,还有哪些相关的文件,我们再点击删除,就可以删除干净。

命令安装方式

优点

  • 方便、快速安装一些编程需要使用的工具或者应用(如浏览器)

缺点

  • 需要用命令,虽然并不复杂,但是大部分人一看到命令还是头疼!

卸载方式

  • 用Homebrew或者MacPorts安装的,也是使用命令卸载,brew install xxx是安装,brew uninstall xxx就是卸载了
  • 源码安装的,是直接到程序目录删除对应程序就好了(会安装的人肯定会删除)

更新软件的方法

App Store安装的软件

App Store安装的软件直接在App Store中安装即可。

安装包安装的软件

  • 有些软件自带更新功能,那么你只需要用软件自带的更新功能;
  • 有些软件没有自带更新功能,那你就再下载一次新版本,覆盖安装即可;
  • 破解软件不可以用自带的更新,必须下载新的破解版。当然有些破解软件是安装官方的软件,然后用破解工具破解,这种你可以用官方更新,但是更新后必须用破解工具重新破解一次,比如Adobe系列软件用Adobe Zii破解。

软件一定要安装到『应用程序』文件夹吗?

  • 如果是App Store安装的,它肯定会在『应用程序』文件夹的,我也没有试过放其它文件夹能不能运行(但我想应该是可以的),不过绝大多数人都不会这么做的,一般还是按规则,放在“应用程序”文件夹;
  • 如果是自己下载安装包安装的软件,你完全可以放在任何目录,但大多数人都会放在『应用程序』目录,这是一个约定俗成的习惯,而且一般dmg软件安装镜像,里面就带有一个『应用程序』的快捷方式,你只需要把软件拖到这个快捷键上放开鼠标即可,当然你也可以把它拖到你想放的任何目录,就跟你从U盘拖一个文件出来一样,当然了,只有在『应用程序』里的软件,才会在『启动台(Launchpad)』里显示,换句话说,如果你的软件不想在『启动台』显示,那你不要放在『应用程序』文件夹好了;
  • 如果是用pkg等少部分需要走安装过程的程序,你无法决定它们的安装目录,它们的安装目录是由程序自己确定的,你也无需知道它在哪里(想深入了解可以自己查资料),卸载的时候按上面说的卸载方式卸载就好了。

使用安装包安装软件可能遇到的问题

打不开“XXX”,因为它来自身份不明的开发者。

当软件开发者没有使用开发者ID证书对软件进行签名,并且也无法检测出它是否包含恶意软件时,就会报这个提示。

“打不开“XXX”,因为它来自身份不明的开发者。macOS无法验证此App不包含恶意软件。”
image.jpg

macOS默认只信任“Mac App Store下载的软件”以及“拥有开发者ID签名的软件”,我们可以在这里系统偏好设置安全与隐私允许从以下位置下载的App看到这两个选项
image.jpg

而有时候一些个人开发者赖得去注册认证,或者搞破解软件的也不可能用开发者ID去签名(因为破解肯定无法通过公证,无论是否有恶意代码,所以你签名也没用),所以macOS默认不让用户安装此类软件。

遇到这种报错,先别点取消,而是先打开系统偏好设置安全与隐私,然后点取消(点取消的时候注意一下安全与隐私界面的变化,它其实是会出现一个“仍要打开”按钮的),我们点这个“仍要打开”即可打开。

如果你不想每次都这样,那你可以在系统偏好设置安全与隐私允许从以下位置下载的App里选择“允许所有来源”,不过这个选项默认是不显示的,我们需要以下命令来让它显示(事实上运行之后它默认就选中了)

sudo spctl --master-disable

注意:该命令会要求你输入密码,但是输入密码的过程你是看不见的,你只要保证自己输入对了,回车就可以。


关于sudo spctl --master-disable这个命令,你可以用man spctl,然后找到--master-disable选项的解释是这样的

Disable the assessment subsystem altogether. Operations that would be denied by system policy will be allowed to proceed; assessment APIs always report success. Requires root access.

翻译:完全禁用评估子系统。那些本应该被系统策略禁止的操作将会被允许继续进行;评估API将永远报告成功(译者注:如果你不禁用评估子系统,那么通过评估时才会报告成功),需要root权限。

“XXX”已损坏,无法打开。 您应该将它移到废纸篓。

错误如下
image.jpg

现在问题来了,都是从网络下载的软件,为什么有些只报“无法打开,因为它来自身份不明的开发者”,而有些却报“xxx已损坏,无法打开。您应该将它移到废纸篓”呢?

出现这个错误基本上是由于软件是破解软件,因为破解软件都是需要修改软件的某些部分,以达到破解的目的的,我猜是因为这些修改无法通过macOS系统的检测,所以被报xxx已损坏,但这貌似也不是因为它检测出了恶意程序,因为如果是的话,它会直接报告检测出恶意程序。

而如果我们执行了前面所说的这个命令后,其实是不会报“xxx已损坏”这样的错误的

sudo spctl --master-disable

因为前面已经说了,sudo spctl --master-disable是完全禁用macOS的评估子系统,macOS软件将不会对你从网络下载的软件的安全性进行评估。

事实上,执行了上边这个命令,也就是“允许任何来源”后,你再打开之前报“xxx已损坏的软件”,它会直接问你“该软件是从互连网下载的,你确定要打开它吗?”(首次打开会报,确定要打开后,下次就不会报了)
image.jpg

如果是浏览器下载的,一般会显示是哪个浏览器下载的,并且还会显示是从哪个链接下载的,如果是迅雷或者其它下载器下载,一般不显示下载链接,只显示是下载工具的名称。

那么macOS是怎么记录某个软件是谁从哪儿下载的呢?其实它是记录在本地的一个sqlite3数据库中的,数据库文件位置如下

~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2

我们用数据库工具(例如Navicat Premium)打开该数据库文件,可以看到数据库结构如下(一屏截不下,所以分两张截了,第二张图是拼到第一张图右边的)
image.jpg
image.jpg

当然我们也可以直接用命令查看该数据库

sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "select * from LSQuarantineEvent;"

但是显示的字段太多有点乱,我挑几个主要字段,命令如下

sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "select LSQuarantineAgentBundleIdentifier,LSQuarantineAgentName,LSQuarantineDataURLString,LSQuarantineSenderName,LSQuarantineOriginURLString from LSQuarantineEvent;"

有人可能不想允许任何来源(即不执行sudo spctl --master-disable),而是喜欢去“系统偏好设置→安全与隐私”点“仍要打开”(认为这样稍微安全点),可是遇到这种报xxx已损坏的错误,在“系统偏好设置→安全与隐私”里不显示“仍要打开”按钮,那要怎么办呢?

办法肯定是有的,那就是通过删除该软件的com.apple.quarantine属性来取消评估子系统对它的检查。这种方法不会禁用系统的评估系统,只会告诉评估子系统不要检查“xxx.app”,也就是单独给某个app放行。前面系统所有来源的方式,相当于不要门卫,所有人都能进,而删除com.apple.quarantine属性的方法,就相当于给某个人一个VIP特权,门卫将不会对这个人做检查。

使用以下命令可显示该app的所有属性(但就我见过的来说,其实只有com.apple.quarantine一个属性)

xattr /path/to/xxx.app

注意/path/to/xxx.app是你要操作的软件的路径,这个路径不需要手动输入,你只需要把前面的命令全部粘贴到终端,然后按一个空格,然后把软件(也就是“xxx.app”)拖到终端里面,它自动就会显示路径,然后回车执行即可,只要是在命令里要用到软件路径,都可以用这种方法(因为有些名称有空格的软件你直接输入是不行的,要用反斜杠转义空格,那样更麻烦,你直接拖进去它会自动转义)。

上边的命令如果正常,应该会显示
image.jpg

使用以下命令可删除“xxx.app”的com.apple.quarantine属性,删除后再用xattr /path/to/xxx.app去查看该软件的属性,你会发现那个属性没有了(也就是被删掉子)

xattr -r -d com.apple.quarantine /path/to/xxx.app
  • xattr:x表示extended,attr就是attributes,所以xattr就是扩展属性的意思,其实这个命令是用来控制macOS的扩展属性的
  • -d: delete (指定删除某个属性),本例中的com.apple.quarantine就是隔离属性,删掉它,软件就不会被系统隔离而不能运行;
  • -r: recursive (递归,对文件夹内的每一个文件包括文件夹本身进行都分别进行同样的操作);
  • -c: clear (删除所有属性)

所以有些写成-rd-rc的都一样,clear虽然是清除所有属性,但我看很多时候其实就只有com.apple.quarantine一个属性,所以所谓的清除,其实就是清除掉了一个属性而已,跟直接删除该属性没什么区别。

无法打开“XXXX”,因为Apple无法检查其是否包含恶意软件

这个报错据说是Catalina上才有,其实跟“XXX已损坏,无法打开。 您应该将它移到废纸篓。”是一样的,只不过改了提示而已。

以下命令是用于覆盖软件的签名的(前面两种方法都不行时,可以试试这种方法)

codesign --sign - --force --deep /path/to/xxx.app
  • --sign可以写成-s
  • --force可以写成-f
  • --deep不能写成-d,因为在这里-d--display的缩写,就算没有--display-d也容易被理解为--delete,所以--deep没有简写。
  • /Applications/Parallels\ Desktop.app是要签名的软件路径

如果提示没有codesign这个命令,你需要用以下命令安装一下“Command Line Tools for xcode”

xcode-select --install

如果xcode-select --install提示无法下载,可以手动安装:xcode-select –install 不能安装该软件,因为当前无法从软件更新服务器获得

下边解释一下这个覆盖签名(或者叫重签名),我们主要是看这个选项--sign -,在Unix系的系统中,--xxx表示使用xxx这个选项,而它后面空格跟着的就表示它的值,对于--sign -来说,--sign就是选项,-就是它的值,是的,这个比较特殊,用一个横杠来做它的值。

我们可以用man codesign命令来查看它的手册,在手册里按/就表示搜索,后面跟上要搜索的关键字,如果页面中有多个关键字,用n来移动到下一个,我们要搜索的关键字是SIGNING IDENTITIES(要用n移动到第二个关键字),然后就能看到下图所示的文字(点击图片可放大)
image.jpg

这段文字解释了用横杠-作为签名值的作用,我们来翻译一下:

如果标识是单个字母“-”(破折号),则执行临时签名。 临时签名根本不使用身份,而是仅标识一个代码实例。 临时签名代码的使用受到重大限制; 使用此之前,请查阅文档。

方法三如果做完还是闪退,那说明这个软件确实有问题,你需要等待新版本或者尝试旧版本。

参考:
在Mac上安全地打开App
Understanding output of xattr -p com.apple.quarantine

打赏
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
linyu
linyu
5 months ago

赞୧(๑•̀◡•́๑)૭

0
Would love your thoughts, please comment.x
()
x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

Mac实用技巧之:三种安装/卸载/更新软件的方式及其优缺点