“Mac应用”已损坏,打不开解决办法
问题说明:
通常在非 Mac App Store下载的软件都会提示“xxx已损坏,打不开。您应将它移到废纸篓”或者“打不开 xxx,因为它来自身份不明的开发者”。
原因:
Mac电脑启用了安全机制,默认只信任Mac App Store下载的软件以及拥有开发者 ID 签名的软件,但是同时也阻止了没有开发者签名的 “老实软件”
解决方法:
1. 打开任何来源选项
a.打开「终端.app」,输入以下命令并回车,输入开机密码回车
sudo spctl --master-disable
此行代码可以让 Mac 允许安装第三方来源的应用
b. 按照上述步骤操作完成后,打开「系统偏好设置」-「安全与隐私」-「通用」,确保已经修改为「任何来源」。
2. 如果还是提示损坏请在第一步的基础上再执行这一步:
打开「终端.app」,输入以下命令并回车,输入开机密码回车
sudo xattr -rd com.apple.quarantine 空格 软件的路径
如Sketch.app
sudo xattr -rd com.apple.quarantine /Applications/Sketch.app
如CleanMyMac X.app
sudo xattr -rd com.apple.quarantine /Applications/CleanMyMac X.app
附1:
/Applications/Sketch.app
与
/Applications/CleanMyMac X.app
就是
软件的路径
附2:
软件路径快速获取方法:
将软件拖入「终端app」即可获得路径
3. 意外退出问题(如果执行后不能解决,M芯片用户请检查是否勾选Rosetta):
更新系统后软件出现意外退出,可按照下面的方法给软件签名
1.打开「终端app」输入如下命令:
xcode-select --install
2.给软件签名
打开终端工具输入并执行如下命令:
sudo codesign --force --deep --sign - (应用路径)
注意:空格不能漏
3.错误解决
如出现以下错误提示:
/文件位置 : replacing existing signature
/文件位置 : resource fork,Finder information,or similar detritus not allowed
那么,先在终端执行:
xattr -cr /文件位置(直接将应用拖进去即可)
然后再次执行如下指令即可:
codesign --force --deep --sign - /文件位置(直接将应用拖进去即可)
修复了之后打开还是显示Start Failed
Internal error. Please refer to https://jb.gg/ide/critical-startup-errors
java.lang.RuntimeException: Cannot invoke (class=aq, method=appFrameCreated, topic=AppLifecycleListener)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:657)
at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:415)
at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:394)
at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:454)
at jdk.proxy1/jdk.proxy1.$Proxy50.appFrameCreated(Unknown Source)
at com.intellij.idea.IdeStarter.openProjectIfNeeded$suspendImpl(IdeStarter.kt:90)
at com.intellij.idea.IdeStarter.openProjectIfNeeded(IdeStarter.kt)
at com.intellij.idea.IdeStarter$start$2.invokeSuspend(IdeStarter.kt:71)
at com.intellij.idea.IdeStarter$start$2.invoke(IdeStarter.kt)
at com.intellij.idea.IdeStarter$start$2.invoke(IdeStarter.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at com.intellij.idea.IdeStarter.start$suspendImpl(IdeStarter.kt:68)
at com.intellij.idea.IdeStarter.start(IdeStarter.kt)
at com.intellij.idea.ApplicationLoader.initApplicationImpl(ApplicationLoader.kt:191)
at com.intellij.idea.ApplicationLoader.access$initApplicationImpl(ApplicationLoader.kt:1)
at com.intellij.idea.ApplicationLoader$initApplicationImpl$1.invokeSuspend(ApplicationLoader.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Caused by: java.lang.NoClassDefFoundError: com/intellij/ide/util/PropertiesComponentImpl
at fuck_you.ap.a(Unknown Source)
at fuck_you.aq.appFrameCreated(Unknown Source)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:644)
… 23 more
Caused by: java.lang.ClassNotFoundException: com.intellij.ide.util.PropertiesComponentImpl
at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:224)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
… 27 more
—–
Your JRE: 17.0.6+10-b829.9 x86_64 (JetBrains s.r.o.)
/Applications/PyCharm.app/Contents/jbr/Contents/Home