1. 程式人生 > >macOS Mojave 無法執行未簽名程式的解決方案

macOS Mojave 無法執行未簽名程式的解決方案

開發十年,就只剩下這套架構體系了! >>>   

有時候我們即使安裝了一些來源奇怪的軟體,也無法執行。使用終端執行則有如下提示:

LSOpenURLsWithRole() failed with error -10810 for the file /Applications/xxx.app.

這是因為 Mojave 引入了新的簽名校驗機制。需要重新簽名:

$ codesign --sign - --force --deep /Applications/xxx.app
/Applications/xxx.app: replacing existing signature

如果包內有其他 app,還需要單獨執行:

$ codesign --sign - --force --deep /Applications/xxx.app/Contents/path/to/inside.app

有些 app 依賴於開發者工具包,需先安裝 Xcode,再執行:

$ xcode-select --install

有些 dmg 裡真正的安裝包是隱藏的,可以通過以下命令在 finder 裡顯示隱藏資料夾:

$ defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder

複製隱藏檔案後文件仍然是隱藏的,通過以下命令取消隱藏和其他屬性:

$ chflags nohidden /path/to/hidden.file
$ xattr -cr /path/to/