This article is not yet available in English. You are reading the Traditional Chinese original. The English edition will appear here once it is translated.
Browse articles that do have an English editionmacOS 上安裝失敗:Gatekeeper、隔離標記與缺少建置工具
Mac 上的安裝失敗看起來比 Windows 少,但每一次都更像「這個工具壞了」。原因是 macOS 擋東西的時候,措辭非常重:「無法打開,因為無法驗證開發者」「這個 App 會損壞你的電腦」。
這些話聽起來像在告訴你檔案有問題。多數時候它在告訴你另一件事:這個檔案不是從 App Store 來的,而 macOS 對所有不是從 App Store 來的軟體都會先問一次。
這篇按順序處理四件事:下載錯版本、Gatekeeper 擋下、下載檔被標記、缺少建置工具。每一件都給你一個確認動作。
不需要你會寫程式。
步驟
步驟一:先確認你的 Mac 是哪一種晶片
Apple 從 2020 年末的某些機型開始,把 Mac 從 Intel 處理器轉到自家晶片。這件事對你的直接影響是:很多工具的下載頁會給兩個檔案,選錯的那個可能裝不起來,或裝起來但跑得很怪。
Apple 官方給的分辨方法,是看「關於這台 Mac」視窗裡那一欄的標題:
- Apple 晶片的 Mac:顯示一個標籤為**「晶片」**的項目,後面是晶片名稱
- Intel 的 Mac:顯示一個標籤為**「處理器」**的項目,後面是 Intel 處理器名稱
開啟方式:從螢幕角落的 Apple 選單裡選「關於這台 Mac」。
用終端機也可以。Apple 官方在「找出你的 Mac 型號名稱與序號」這篇文章裡就給了終端機的做法,並說明終端機 App 位在「應用程式」資料夾的「工具程式」資料夾裡。確認晶片:
uname -m
uname 的 -m 在 Apple 隨 macOS 附上的說明頁(man page)裡的定義是「把目前硬體平台的類型寫到標準輸出」。本站在一台 Apple 晶片的 Mac(macOS 26.6.2)上實際執行這條指令,得到的是 arm64。Intel 機型回報的是另一個值,你可以自己跑一次確認,不需要相信任何文章的說法。
Apple 官方也列了哪些機型有 Apple 晶片:MacBook Pro 2021 年或之後(加上 13 吋 M1 2020)、MacBook Air 2022 年或之後(加上 M1 2020)、iMac 2021 年或之後、Mac mini 2020 年或之後、Mac Studio 2022 年或之後、Mac Pro 2023。
下載頁上看到 arm64 / aarch64 / Apple Silicon 就是給 Apple 晶片的;看到 x86_64 / x64 / Intel 就是給 Intel 的。
一個真實的坑:有些工具的 macOS 安裝檔只提供 Apple 晶片版本。這種情況下 Intel Mac 不是「裝不起來」,是「根本沒有對應的檔案可下載」—— 在下載頁找不到 Intel 選項時,先去工具的官方文件確認支援範圍,不要去找第三方打包的版本。
步驟二:確認 App 到底裝進去沒有
Mac 上「安裝」分成兩種完全不同的東西,卡住的人常常在找錯的那一種。
第一種:圖形介面 App。 它就是一個檔案,躺在「應用程式」資料夾裡。確認方式不需要任何指令:打開 Finder,左側點「應用程式」,看有沒有那個圖示。
.dmg 檔是磁碟映像檔,打開它不等於安裝。macOS 上標準動作是把視窗裡的 App 圖示拖曳到「應用程式」資料夾圖示上。很多人在 .dmg 打開的視窗裡直接雙擊 App 跑了一次,以為裝好了,重開機之後什麼都沒有 —— 因為它從來沒被複製進去。
第二種:命令列工具。 沒有圖示,只有一個可以打名字呼叫的執行檔。確認方式:
which 程式名
command -v 程式名
預期輸出:一行路徑,例如 /usr/local/bin/程式名 或 /opt/homebrew/bin/程式名。
什麼都沒印:分兩種。真的沒裝,或裝了但那個資料夾不在 PATH 與路徑 上。用遞迴搜尋確認:
ls -l /usr/local/bin/ | grep 程式名
ls -l /opt/homebrew/bin/ | grep 程式名
找到了路徑卻呼叫不到,就是 PATH 的問題,去步驟六。
步驟三:Gatekeeper 說「無法驗證開發者」
症狀:雙擊 App,跳出一個對話框,說它無法被打開,因為開發者無法被驗證;或說 Apple 無法檢查它有沒有惡意軟體;或說它不是從 App Store 下載的。
這是什麼:macOS 內建一項叫 Gatekeeper 的技術,設計目的是確保只有受信任的軟體在你的 Mac 上執行。Apple 的說明是:當你安裝來自 App Store 之外的 Mac App、外掛程式與安裝套件時,macOS 會檢查 Developer ID 簽章,以驗證軟體來自一位已識別的開發者、而且沒有被竄改。從 macOS Catalina 開始,還預設要求軟體經過公證(notarization)—— Apple 檢查過它、沒有偵測到已知惡意軟體。
Apple 也說明:在第一次打開下載來的軟體之前,macOS 會請求你的同意,以確保你不會被誤導去執行你沒預期的軟體。
所以這個對話框不是錯誤,是一道詢問。
Apple 的 Mac 使用者指南對這種情況講得很直白:如果你試著打開一個沒有由已知開發者向 Apple 註冊的 App,你會得到一個警告對話框;這個 App 沒有被審閱過,macOS 無法檢查它自發布以來有沒有被修改或損壞。
指南也同時給了一句你應該照聽的警告:覆寫安全設定以打開 App,是 Mac 被惡意軟體感染最常見的方式。 如果一個 App 沒有被 Apple 檢查過,即使它看起來來自一家大廠,你也不應該覆寫安全設定;最安全的做法是找 App Store 裡的版本,或找一個替代 App。
如果你確認來源可信(例如你就是從該工具的官方網站下載的),Apple 官方列的覆寫路徑是:
- 從 Apple 選單打開系統設定
- 在側邊欄點**「隱私權與安全性」**(指南特別註明:你可能需要往下捲)
- 捲到**「安全性」**那一區
- 按**「仍要打開」**
- 輸入你的登入密碼,按「好」
這裡有一件幾乎所有教學都漏掉的事,Apple 的指南原文寫著:這個按鈕在你試著打開該 App 之後,只保留大約一小時。
意思是:你按了「完成」把警告關掉,然後去泡杯咖啡、去讀別的文章,半小時後回來找不到「仍要打開」按鈕 —— 它不是消失,是過期了。再雙擊一次那個 App,讓警告重新跳出來,按鈕就會再出現一次。
成功之後,Apple 的說明是:該 App 會被存成你安全設定的一項例外,之後你可以像任何其他已授權的 App 一樣,直接雙擊打開它。
如果你要開的是一個命令列工具而不是 App,它可能根本不會觸發這個對話框 —— 沒有圖形介面就沒有地方顯示它。這種情況看步驟四。
順帶說清楚另一個選項:在「隱私權與安全性」的「安全性」底下,有一項「允許從以下位置下載的 App」,Apple 列的選項是「App Store」與「App Store 與已識別的開發者」。Apple 也註明:如果這台 Mac 由公司或學校的系統管理員/IT 部門管理,這些設定可能無法使用。 改成後者是一個全域決定,比針對單一 App 按「仍要打開」影響大得多 —— 能用單一例外解決的,就不要改全域。
步驟四:下載來的檔案被標記成「來自網路」
macOS 會記住一個檔案是從哪裡來的。從瀏覽器或通訊軟體存下來的檔案,會被加上一個延伸屬性(extended attribute),Gatekeeper 就是靠它知道「這是剛下載的、第一次打開要問你」。
你可以自己看這個標記。本站在一台 macOS 26.6.2 的機器上,對幾個下載來的檔案實際執行:
xattr -p com.apple.quarantine 某個下載檔.pdf
得到的輸出形如:
0083;6a3bf230;Safari;
0082;6a3befc1;Feishu;
四段用分號隔開,最後一段是放下這個檔案的那個程式 —— 上面兩筆分別是 Safari 下載的與某個通訊軟體存下來的。這是本站自己跑出來的第一手觀察,不是抄自文件;Apple 隨 macOS 附上的 xattr 說明頁並沒有逐一列出各個系統屬性的名字,所以這個屬性名以實際執行結果為準。
這個標記是正常的,不是中毒。 它就是你會看到步驟三那個對話框的原因。
網路上常見的「解法」是把標記移除:
xattr -d com.apple.quarantine 某個檔案
本站不建議你把這個當成預設做法。 理由跟步驟三那條 Apple 警告是同一個:這個標記存在的目的是讓 macOS 在第一次執行前問你一次。移除它,你就跳過了那一次詢問 —— 對一個你確認過來源的 App,用「仍要打開」達成同樣的效果,而且留下一條看得見的例外紀錄,比在終端機裡把標記刪掉好。
真的要用的時候,注意兩件事:只對單一檔案用,不要對整個資料夾遞迴用;以及用完之後那個檔案就不再受 Gatekeeper 的首次詢問保護。
步驟五:安裝到一半說找不到建置工具
症狀:你在終端機跑一段安裝指令,它跑到某一步停下來,說需要命令列開發者工具、或說找不到 cc/clang/git/make,然後跳出一個系統對話框問你要不要安裝。
這是什麼:macOS 預設不附編譯器與相關工具。Apple 的技術文件說明,「命令列工具套件」是一個可獨立下載的小型自成套件,讓你能在 macOS 上做命令列開發;它包含 macOS SDK 與 Clang 這類命令列工具,安裝在 /Library/Developer/CommandLineTools 目錄。
官方給的安裝方式(Apple 技術文件 TN2339 原文):在終端機執行
xcode-select --install
Apple 也說明,macOS 本身就附帶 xcode-select 這個命令列工具,安裝在 /usr/bin,用來管理 Xcode 與其他 BSD 開發工具的使用中開發者目錄。
預期輸出:一個系統對話框,問你要不要安裝命令列開發者工具,按「安裝」並同意授權條款,然後它自己下載。下載需要幾分鐘,視網路而定。
確認裝好了:
xcode-select --print-path
Apple 的文件用這條指令來查「目前命令列工具用的是哪個版本/哪個 Xcode」。印出一個路徑就代表有;沒裝過的話它會告訴你找不到。
不需要為了這個裝整個 Xcode。 Apple 的文件明說,如果 Xcode 已經裝在你機器上,就不需要另外裝命令列工具(Xcode 已經全包了);但反過來不成立 —— 你只是要跑一個安裝腳本,裝那個小型套件就夠,Xcode 是十幾 GB 的東西。
還有一種狀況:同一份 Apple 文件提到,如果 /Library/Developer/CommandLineTools 這個目錄存在,移除它就會解除安裝命令列工具。所以「我明明裝過,怎麼又說找不到」有可能是那個目錄被動過 —— 重跑一次 xcode-select --install 通常就解決。
步驟六:Homebrew 裝完,指令還是找不到
很多 Mac 上的 AI 工具教學第一行就是 brew install 某個東西。Homebrew 是 macOS(與 Linux)上事實標準的套件管理器,詞條見 Homebrew(brew)。
官方文件說明它的預設安裝位置:Apple 晶片是 /opt/homebrew,macOS Intel 是 /usr/local,Linux 是 /home/linuxbrew/.linuxbrew。文件也說明這個位置選在這裡,是為了讓你在初次安裝 Homebrew 之後不需要 sudo 就能安裝 formula(某些 cask 與系統服務仍需要提權)。
這直接給了你一個診斷線索:Apple 晶片與 Intel 的 Mac,Homebrew 的 bin 目錄是兩個不同的路徑(/opt/homebrew/bin 對 /usr/local/bin)。網路上抄來的 PATH 設定如果是寫給另一種晶片的,你照做之後一樣是 command not found。
官方要求你把下面這行加進 shell 的設定檔(檔案依你的 shell 而定,例如 ~/.bashrc 或 ~/.zshrc):
eval "$(/opt/homebrew/bin/brew shellenv)"
Intel Mac 把路徑換成 /usr/local/bin/brew。官方文件的原話是:如果你沒有照那些指示更新 shell 的設定,Homebrew 將無法運作。
改完設定檔之後,開一個新的終端機視窗再試。設定檔只在 shell 啟動時讀一次,這件事在 Config File(設定檔) 詞條裡有說明。
不要對 brew 加 sudo。 官方文件說明的預設位置設計,目的就是讓你不需要提權;用 root 跑 Homebrew 會讓它產出的檔案變成 root 擁有,之後你用平常身分跑又卡住。詞條 sudo(管理員權限) 把這個陷阱的完整鏈條寫出來了。
三個 macOS 特有、看起來像壞掉的狀況
一、.dmg 打開之後,桌面多出一個白色磁碟圖示。
那是掛載中的磁碟映像檔,正常。安裝完要把它退出(右鍵 → 退出,或拖到垃圾桶圖示上)。它不會自己消失,也不是「多裝了一份」。
二、終端機第一次跑某個指令時,跳出一個視窗要求「允許存取可移除的卷宗/桌面/文件資料夾」。 這是 macOS 的隱私保護在問你,不是錯誤。按允許。按了拒絕的話,之後那個工具會以「找不到檔案」的姿態失敗,而錯誤訊息完全不會提到權限 —— 到系統設定 → 隱私權與安全性裡找對應的項目重新給。
三、指令在終端機裡跑得通,從 Finder 雙擊或從某個 App 裡呼叫就失敗。 從圖形介面啟動的程式,讀到的環境跟你的 shell 不一定相同,尤其是 PATH。這也是為什麼很多工具要求你「從終端機啟動它」。
下一步
- 用的其實是 Windows:Windows 上安裝失敗:PATH、執行原則、SmartScreen 三件事
- 想有一套不分作業系統的判斷流程:裝完沒反應:五個檢查,照順序做完再重裝
- 錯誤訊息到底該怎麼讀:怎麼讀一則錯誤訊息
- 那個視窗到底是什麼:Terminal 是什麼
- 路徑、
~、空格與引號:檔案路徑是什麼 - 先把詞認完:開始之前:你只需要先認識這 20 個詞
More in Learn
- Complete LangChain Tutorial 2026: Building Enterprise-Grade LLM Applications from Scratch
- MemoryHub v2.0 System Architecture In-Depth Analysis: From Capture Daemon to MCP Real-Time Memory Capture
- May 2026 LLM API Pricing Landscape: Complete Comparison of DeepSeek, Qwen, GLM, Kimi, MiniMax, and Doubao
- Cross-Channel Memory Hub: A Full Record of the Memory System Architecture Design for OpenClaw Agent