如何修復xx.app 已損壞無法開啟
剛用 macOS 的小夥伴或者在更新某個系統版本後執行 App 會提示提示【xxx已損壞,無法開啟,你應該將它移到廢紙簍解決辦法】、【打不開 xxx,因為它來自身份不明的開發者】,【打不開xxxx,因為 Apple 無法檢查其是否包含惡意軟體】下邊下面就教大家如何修復。
常見的三種報錯
- xxx已損壞,無法開啟,你應該將它移到廢紙簍解決辦法
- 打不開 xxx,因為它來自身份不明的開發者
- 打不開xxxx,因為 Apple 無法檢查其是否包含惡意軟體
為什麼會出現?
這是 macOS 啟用了新的安全機制的問題。
蘋果預設是隻允許安裝自家【App Store】來源的應用,如果你想安裝第三方的應用,那麼需要在【系統偏 好設定 -> 安全性與隱私 -> 通用】中勾選【App Store 和被認可的開發者】選項。而被認可的開發者是需要購買蘋果的企業證書對應用進行簽名,然後再提交給蘋果稽覈才可以,這對破解應用來說很不現實,因為破解應用必定會修改應用的檔案從而導致簽名失效而執行顯示【已損壞】。
解決方法就是去開啟【任何來源】選項了,但是 macOS 預設是隱藏了這個設定的,需要使用者手動通過終端執行命令列程式碼來開啟。
下面就讓 MacWk.com 教大家使用命令列程式碼開啟隱藏的任何來源選項。
開啟任何來源
先開啟 系統偏好設定 -> 安全與隱私 -> 通用 選項卡,檢查是否已經啟用了 任何來源 選項。如果沒有啟用,先點選左下角的小黃鎖圖示解鎖,然後選中任何來源。
如果沒有這個選項,我們開啟終端,輸入以下命令 (可以通過點選螢幕右上角的搜尋圖示,輸入終端快速執行):
sudo spctl --master-disable
然後按下鍵盤的回車鍵(return),輸入密碼,再按回車鍵,完成。
輸入命令回車後會看見個 password 後面還有個鑰匙圖示,在鑰匙圖示後面輸入你自己電腦解鎖密碼(輸入的時候不顯示你輸入的密碼,感覺就是輸入不了東西一樣,也不用管,憑感覺輸入完正確解鎖密碼後按回車鍵)
好了,現在回到 系統偏好設定 -> 安全性與隱私 -> 通用 裡,就會發現已選中任何來源選項了。
一般執行完命令會預設選中的,如果沒有選中,解鎖一下選中就可以了!
到這裡一般情況下應用都可以執行了。
然而有的應用開啟了任何來源還是不行,這是因為蘋果進一步收縮了對未簽名應用的許可權,這時候就需要過終端執行命令列程式碼來繞過應用簽名認證啦。下面 MacWk.com 就教大家通過命令繞過蘋果的公證 Gatekeeper。
來,讓我們繼續往下看。
繞過公證:
開啟終端,輸入以下命令:
sudo xattr -rd com.apple.quarantine /Applications/xxxxxx.app
將上面的 xxxxxx.app 換成你的App名稱,比如 Sketch.app
sudo xattr -rd com.apple.quarantine /Applications/Sketch.app
或者複製以下命令貼上到終端後
sudo xattr -rd com.apple.quarantine
開啟Finder(訪達),點選左側的 應用程式,將應用拖進終端中,然後按鍵盤的回車鍵(return),輸入密碼,再按回車鍵,完成。
注意 quarantine 後面必須有個空格
好了再看一下是不是可以開啟APP了!
如果還不行,那就需要對應用進行本地簽名操作了!
應用簽名
- 安裝Command Line Tools 工具
開啟終端工具輸入如下命令:
xcode-select --install
- 彈出安裝視窗後選擇繼續安裝,安裝過程需要幾分鐘,請耐心等待。如果安裝的時候提示“不能安裝該軟體,因為當前無法從軟體更新伺服器獲得”,請按這篇教程操作:點我檢視
- 開啟終端工具輸入並執行如下命令對應用簽名:
sudo codesign --force --deep --sign - (應用路徑)
應用路徑:開啟訪達(Finder),點選左側導航欄的 應用程式,找到相關應用,將它拖進終端命令-的後面,然後按下回車即可,注意最後一個 -後面有一個空格。
正常情況下只有一行提示,即成功:
/檔案位置 : replacing existing signature
如遇如下錯誤:
/檔案位置 : replacing existing signature/檔案位置 : resource fork,Finder information,or similar detritus not allowed
- 先在終端執行:
xattr -cr /檔案位置(直接將應用拖進去即可)
- 然後再次執行如下指令即可:
codesign --force --deep --sign - /檔案位置(直接將應用拖進去即可)
到這兒,百分之九十五的應用都可以正常執行了。如果還不行,請繼續往下看。
還不行?
以上操作如果還不能解決,那就需要關閉SIP系統完整性保護才可以了!一勞永逸!
關閉SIP教程