Mac 应用程序崩溃、无法启动解决方法

1、问题描述

  • Mac 应用程序如果在打开时提示崩溃,该怎么解决?最近一次 Apple静默更新之后,Apple 删除了 TNT 的证书,因此应用程序将在 7 月 12 日之后崩溃。目前的解决方案是自己签名。

2、问题解决方法

2.1 检测软件签名是否存在

  • 打开终端,输入以下命令,输入开机密码(输入过程中不会显示密码),输入完成后按确认键 enter。

    1
    $ sudo -s
  • 然后再终端输入 xattr,再打开应用程序文件夹,把软件拖到终端,比如把 Winclone 拖到终端,终端就会显示如下,然后按确认。

    1
    $ xattr /Applications/Winclone.app
  • 接下来你就会看到 com.apple.quarantine 这样的结果,有的软件拖到终端按确认后会显示 com.apple.FinderInfo 这样的结果。

  • 如果有这样的反馈,说明此软件的签名在,正常情况是不会崩溃的。如果崩溃了,那就得清除这个签名。

2.2 清除签名

  • 清除签名的命令如下,输入完成后按确认即可。

    1
    $ xattr -r -d com.apple.quarantine /Applications/Winclone.app

2.3 崩溃修复

  • 出现崩溃问题的 Mac 软件运行时,会出现类似:“XXX”意外退出、“XXX”打不开,需要移至回收站。

  • Mac 软件崩溃修复分两种方法:

2.3.1 在终端中修复

  • 在终端中运行以下命令

    1
    2
    3
    4
    5
    $ sudo codesign --force --deep --sign - 文件位置(直接将应用拖到终端即可)

    例如

    $ sudo codesign --force --deep --sign - /Applications/name.app
  • 或者用以下的命令,不需要输入密码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ sudo codesign -f -s - --deep 文件位置(直接将应用拖到终端即可)

    例如

    # 软件 "CleanMyMac X"
    $ sudo codesign -f -s - --deep /Applications/CleanMyMac\ X.app

    # 软件 "Alfred 4"
    $ sudo codesign -f -s - --deep /Applications/Alfred\ 4.app
  • 必备:Xcode 或 Apple 命令行工具,要安装,终端执行以下命令

    1
    $ xcode-select --install
  • 在选择的终端仿真器中,macOS GUI 将为您提供安装 Xcode(来自 Mac App Store)或 CLT 的选项。如果您安装 Xcode,请至少启动一次以完成安装并同意许可。

2.3.2 使用 CodeSigner 签署应用程序

  • CodeSigner 是 macOS 系统上一款解决应用打开崩溃的工具。

2.4 注意事宜

  • 正常情况下只有一行提示,即成功

    1
    $ /app path : replacing existing signature
  • 如遇如下错误

    1
    2
    $ /app path : replacing existing signature
    $ /app path : resource fork, Finder information, or similar detritus not allowed
  • 先在终端执行

    1
    $ xattr -cr /app path【你的 app 路径】
  • 然后再次执行如下指令即可

    1
    $ codesign --force --deep --sign - /app path【你的 app 路径】
文章目录
  1. 1. 1、问题描述
  2. 2. 2、问题解决方法
    1. 2.1. 2.1 检测软件签名是否存在
    2. 2.2. 2.2 清除签名
    3. 2.3. 2.3 崩溃修复
      1. 2.3.1. 2.3.1 在终端中修复
      2. 2.3.2. 2.3.2 使用 CodeSigner 签署应用程序
    4. 2.4. 2.4 注意事宜
隐藏目录