01 它是干嘛的
macOS 是苹果电脑的系统,既提供桌面级的窗口与文件管理,也承担一套比手机更宽松、但依旧严格的权限模型。它最鲜明的设计是「代码签名 + 公证 + 守门人(Gatekeeper)」三道校验:软件必须能证明自己是谁写的、有没有被改过,才被允许顺利运行。
02 为什么会有它
在个人电脑上,程序曾经可以随便翻看整台电脑
早期的个人电脑没有严格的权限概念,任何程序装上去之后都能读取硬盘上的任意文件、悄悄修改系统设置,甚至替换系统文件本身。用户装一个来路不明的软件,基本等于把整台电脑交了出去,而电脑上往往存着工作文档、财务表格和私人照片。
另一个痛点是「安装软件像做手术」:卸载要手动删掉散落各处的文件,装错驱动直接死机,系统一旦被恶意程序改坏,除了重装别无他法。这些问题在企业和家庭里都造成了大量麻烦。
苹果在 macOS 里引入了一整套机制来解决它:给每个正规软件附上一段「开发者签名」,相当于贴了封条;再让软件在发布前接受苹果的自动扫描,扫描通过后盖一个「已公证」的章。系统每次打开程序前都会核对这两样东西,这就是守门人。
03 它怎么工作
macOS 在启动程序前会走一整套校验流程:先看它有没有开发者签名,再看这个签名是否来自被信任的开发者,最后确认它是否通过苹果公证,全部通过才放行,并在运行中继续用权限与沙箱约束它。
双击一个程序时,macOS 是怎么决定放不放行的
- 1① 用户双击一个应用
这一动作触发系统在真正加载程序之前,先做一轮身份与完整性检查,而不是先运行再观察。
- 2② 检查代码签名
每个正规开发者签发的程序里都带着一段数字签名,相当于封条。签名与文件内容一一对应,改动一个字节签名就会失效。
- 3③ 核对开发者身份
系统向上验证这段签名是否来自苹果信任的开发者账号,确认「这个软件是谁写的」,而不是只看它叫什么名字。
- 4④ 检查公证结果
开发者发布前会把软件上传给苹果做自动扫描,通过后苹果在签名上盖「已公证」的章;未公证或已被篡改的程序会被拦下。
- 5⑤ 沙箱与运行权限
从商店安装的 App 默认运行在沙箱里,想访问文件、麦克风、屏幕录制等敏感能力,必须单独向用户申请授权。
- 6⑥ 放行或给出提示
通过校验的程序正常运行;没通过的会明确告诉用户原因,并引导到「系统设置 → 隐私与安全性」里由用户手动确认。
04 谁在用它
处理文档、剪辑视频、设计排版等重活,依赖桌面系统的多窗口、文件管理与专业软件生态。
在电脑上编写与编译代码、跑本地服务器、调试移动应用,是苹果生态开发工作的必备环境。
公司统一配置安全策略与软件白名单,员工设备即便丢失也可远程锁定与擦除。
多人共用一台电脑时,各自账号的文件与数据相互隔离,互不影响。
音频、影像等行业软件长期以桌面系统为主要平台,稳定性与外部设备兼容性要求高。
05 怎么用
系统随电脑预装,普通用户重点是管好权限与来源,开发者则需要配置签名与公证。
- 01普通用户:在「系统设置 → 通用 → 软件更新」里保持系统为最新版本。
- 02只从官方商店或开发者官网下载软件,避免使用来源不明的破解版。
- 03在「系统设置 → 隐私与安全性」里逐项检查麦克风、摄像头、屏幕录制等授权。
- 04开发者:在苹果开发者后台申请证书,用 Xcode 为应用开启自动签名。
- 05打包后先做公证上传,等待苹果扫描通过,再把产物交给用户下载。
- 06用「描述文件」区分开发版与正式版,避免把调试版本发给普通用户。
避坑提示
- !「已公证」不等于安全无虞,它只证明没被篡改且来自可信开发者,仍需谨慎授予敏感权限。
- !从网页下载的软件第一次打开可能被拦下,正确的做法是去设置里确认,而不是关掉整台机器的安全检查。
- !企业环境里证书一旦泄露要及时吊销,否则拿到证书的人可以伪装成你的软件。
06 关键概念
- 代码签名
- 给软件附上的一段数字封条,能证明它是谁写的、有没有被人改动过。
- 公证(Notarization)
- 发布前把软件交给苹果自动扫描,通过后加盖凭证,用户设备才愿意运行。
- 守门人(Gatekeeper)
- 系统在打开软件前的统一校验机制,把关来源与完整性。
- 沙箱
- 把应用关进受限空间,它想碰文件与硬件必须先申请权限。