Mac系统升级后软件闪退并非软件损坏,而是因签名验证收紧、TCC权限重置、沙盒强化或API调整所致;需依次确认更新关联性、清除quarantine并重签名、启用Rosetta、重置TCC权限、右键“打开”绕过Gatekeeper。

Mac系统升级后软件闪退,不是软件坏了,而是新系统收紧签名验证、重置TCC权限、强化沙盒策略或调整底层API行为所致。必须按环境变更的真实路径逐层排查,跳过任何一步都可能让问题反复出现。
确认是否为本次更新直接引发
打开「系统设置 → 通用 → 软件更新」,查看最近安装的更新名称和日期,例如“macOS Sequoia 15.5 安全更新(2026-06)”;再打开「控制台」→ 左侧选「崩溃报告」→ 搜索关键词 code-signing、hardened runtime、dyld: Library not loaded 或 TCC;如果日志里反复出现 “not validly signed” 或 “ad-hoc signature rejected”,基本锁定是更新触发的签名拦截。
清除quarantine属性并强制重签名
系统更新后会自动给从网络下载的应用打上 quarantine 属性,同时拒绝未公证的 ad-hoc 签名;这两道关卡叠加,直接导致应用连启动画面都出不来。
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
- 打开「终端」
- 输入 sudo xattr -r -d com.apple.quarantine,留一个空格
- 在「访达」中打开「应用程序」文件夹,把目标App(如 Obsidian.app)直接拖进终端窗口,路径自动填入
- 回车执行,输入管理员密码(输入时无光标、无反馈,输完直接按回车)
- 紧接着输入 sudo codesign --force --deep --sign -,同样留空格后拖入该App
- 若报错 “resource fork, Finder information, or similar detritus”,改用完整命令:
sudo codesign --force --deep --preserve-metadata=entitlements,requirements,flags --sign -
为Intel应用启用Rosetta
Apple Silicon Mac(M1/M2/M3)在系统更新后可能默认关闭Rosetta,导致仅支持x86_64架构的应用启动即崩溃,错误日志里常带 EXC_BAD_INSTRUCTION (SIGILL)。
- 访达 → 应用程序 → 右键点击目标App → 「显示简介」
- 勾选「使用Rosetta打开」
- 若选项灰色不可点,先在终端运行:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license,再重试 - 勾选后务必关闭简介窗口,否则设置不生效
重置TCC权限数据库
系统更新会清空TCC(摄像头、麦克风、辅助功能、全盘访问等)权限记录,调用这些能力的应用(如录屏工具、OCR、自动化脚本)会在加载阶段直接崩溃。
- 打开「终端」
- 执行:tccutil reset All com.example.app(将 com.example.app 替换为实际Bundle ID;不知道ID可先查:mdls -name kMDItemCFBundleIdentifier /Applications/xxx.app)
- 或者重置全部权限:tccutil reset All(会清空所有隐私授权,需重新手动允许)
- 重启对应应用,首次调用权限时系统会再次弹窗请求
右键“打开”绕过Gatekeeper一次性放行
即使重签名完成,macOS仍会对首次运行的应用弹出安全警告;双击会直接拒绝,但右键→“打开”能强制唤出“仍要打开”按钮。
- 在「访达」中定位到该App
- 按住 Control 键单击图标,选择「打开」
- 在弹出的提示框中点击「仍要打开」
- 后续启动即可双击正常运行

















