最近,我试图在我运行macOS Monterey 12.4的现代M1 Mac上运行SketchUp Make 2017的旧独立版本。起初情况很糟糕,启动时崩溃,出现 "SketchUp意外退出 "的错误:

但我得到了它的工作!
下面是如何通过删除代码签名使其运行。
主要的线索是当我试着从终端运行它,看看它是否会显示一个更有用的错误。我得到了同样的弹出式错误,但也有这个。
rosetta error: /var/db/blahblah/SketchUp.aot: attachment of code signature supplement failed: 1
zsh: trace trap /Applications/SketchUp\ 2017/SketchUp.app/Contents/MacOS/SketchUp
"代码签名的附件补充失败",嗯?
那我们就把这个代码签名删除吧......从应用程序中的所有内容中删除。
要做到这一点,启动终端应用程序(从应用程序>实用工具下),复制所有这些文本,将其粘贴到终端窗口,然后按回车键:
codesign --remove-signature --deep /Applications/SketchUp\ 2017/SketchUp.app
codesign --remove-signature --deep /Applications/SketchUp\ 2017/SketchUp.app/Contents/Frameworks/*.framework
codesign --remove-signature --deep /Applications/SketchUp\ 2017/SketchUp.app/Contents/Frameworks/*.dylib
codesign --remove-signature --deep /Applications/SketchUp\ 2017/SketchUp.app/Contents/PlugIns/*.plugin
(如果SketchUp在你的机器上安装在不同的文件夹中,你必须改变这些路径来匹配。)
做完这一切后,我就能在Rosetta下启动SketchUp了!
我的猜测是,代码签名证书的格式在较新的macOS版本中发生了变化。我不确定--但我很高兴SketchUp又能工作了!
一个(也许?)重要的细节是,我的机器上禁用了系统完整性保护(SIP)。我不确定这是否重要。(我没有在启用SIP时测试SketchUp)。如果删除代码签名还不足以让它工作,你可以谷歌一下如何禁用SIP。