# Mac 的 ~/Library/Group Containers 是什麼？哪些可以刪？

> 這篇說明 App Group 資料夾是什麼、怎麼讀 UBF8T346G9.Office 或 group.com.apple.notes 這類名稱，以及怎麼查出已安裝的 App 是否還在用某個群組，只移除已解除安裝的 App 留下的群組。

Published: 2026-09-08 | Updated: 2026-09-26

在一台用了一段時間的 Mac 上打開 `~/Library/Group Containers`，會看到一整列 `UBF8T346G9.Office`、`group.com.apple.notes` 或 `9K33E3U3T4.net.shinyfrog.bear` 這樣的資料夾，有的只有幾 KB 的設定，有的裝著某個 App 的整個資料庫，也有幾個屬於早就移除的 App。名字看起來像亂碼，所以空間不夠的人常會把這個資料夾清空，而這麼做往往會出問題。

這篇講這個資料夾是什麼、名字怎麼讀、怎麼查出一個群組還被哪個已安裝的 App 使用，以及已移除的 App 留下的哪些群組可以移到垃圾桶。

## 這個資料夾是什麼

App Group 是開發者在 App 的程式碼簽署裡宣告的一塊共用空間，對應的授權項目是 `com.apple.security.application-groups`。Apple 的 [App Groups 授權項目文件](https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.security.application-groups)說明，同一個開發團隊的幾個 App 靠它共用容器和鑰匙圈存取群組，也靠它彼此溝通。在 Mac 上，每個群組會有一個 `~/Library/Group Containers/<group id>` 資料夾，第一次用到時，系統會在裡面建立 `Library/Application Support`、`Library/Caches` 和 `Library/Preferences`。

Apple 列出兩種識別碼格式：

- `group.<group name>`，要在 Apple Developer 網站註冊，iOS 用的也是這種格式。
- `<team identifier>.<group name>`，macOS 的格式，以開發者十個字元的 Team ID 開頭，不需要註冊。

資料夾名稱就是識別碼，所以直接列出資料夾，就看得出每個群組屬於哪一種。

## 為什麼 App 刪了，群組還在

一個群組很少只有一個成員。主 App、它的小工具、分享或 Finder 延伸功能，以及輔助工具，常常加入同一個群組，才能讀到同一份設定和檔案。開發者也可以把幾個獨立的 App 放進同一個群組，例如 Microsoft 的 Office App 共用 `UBF8T346G9.ms`、`UBF8T346G9.Office` 和 `UBF8T346G9.OfficeOsfWebHost`，Pages、Numbers 和 Keynote 共用 `group.com.apple.iWork`。

移除時 macOS 和 iOS 就不一樣了。Apple 的 [`containerURL(forSecurityApplicationGroupIdentifier:)` 文件](https://developer.apple.com/documentation/foundation/filemanager/containerurl%28forsecurityapplicationgroupidentifier%3A%29)寫明，在 iOS 上，群組裡的 App 全部刪除後，系統會刪除群組目錄，而在 macOS 上，系統在 App 第一次需要時建立目錄，之後從不移除。把 App 拖到垃圾桶，它的群組會原封不動留在原處。

裡面裝的東西差別很大，可能是很小的偏好設定檔，可能是快取，也可能是真正的資料。[Microsoft 提醒過](https://support.microsoft.com/zh-tw/office/uninstall-office-for-mac-eefa1199-5b58-43af-8a3d-b73dc1a8cae3)，把 Office 的三個共用資料夾移到垃圾桶會刪掉 Outlook 的資料，WhatsApp 則把收到的媒體放在 `group.net.whatsapp.WhatsApp.shared` 和 `group.net.whatsapp.WhatsApp.private` 裡，可能佔到幾十甚至幾百 GB。

## 怎麼讀資料夾名稱

| 名稱形態 | 例子 | 通常代表什麼 |
| --- | --- | --- |
| `group.<bundle id>` | `group.com.apple.testflight` | 以某一個 App 命名，這裡是 TestFlight |
| `group.<bundle id>.<suffix>` | `group.net.whatsapp.WhatsApp.shared` | 錨定在一個 App 的完整 id 上，由這個 App 或它的延伸功能使用 |
| `group.<shared name>` | `group.com.apple.iWork`、`group.net.whatsapp.family` | 幾個 App 共用，名稱裡沒有任何單一 App 的 id |
| `<TeamID>.<bundle id>` | `9K33E3U3T4.net.shinyfrog.bear` | 單一 App 的 Mac 寫法，這裡是 Bear |
| `<TeamID>.group.<name>` | `G78RJ6NLJU.group.at.EternalStorms.Yoink` | 以團隊為範圍的群組，可能是一個 App，也可能是好幾個 |
| `<TeamID>.<short name>` | `UBF8T346G9.Office`、`UBF8T346G9.ms` | 整個套件共用，以產品或廠商命名 |

有兩點讓它比看起來難判斷。Team ID 指的是開發者，不是 App，Mac 上 Microsoft 的每個群組都以 `UBF8T346G9.` 開頭，不管屬於 Teams 還是 Office。名稱長得像 bundle id，也不一定是目前這個 App 的 id，Teams 用的是 `UBF8T346G9.com.microsoft.teams`，App 本身卻是 `com.microsoft.teams2`。名稱只是線索，已安裝 App 的簽署才是證據。

## 為什麼按大小排序直接刪會出問題

這裡最大的幾個資料夾，通常正是還在使用的那幾個。按大小排序，排在最前面的會是郵件資料庫、備忘錄資料庫或聊天 App 的媒體，沒有一個是快取。

Apple 自己的 App 也在這裡。`group.com.apple.notes` 和 `group.com.apple.reminders` 屬於備忘錄和提醒事項，`group.com.apple.iWork` 屬於 Pages、Numbers 和 Keynote，以 `systemgroup.` 開頭的是系統群組。就算你不認得名稱，它們也都不是殘留。

共用群組比它的任何一個成員都活得久。移除 Word 之後，只要 Excel 或 Outlook 還裝著，`UBF8T346G9.Office` 就不能丟，刪了會讓剩下的 App 被重置或無法正常運作。

群組一旦刪除，裡面的內容就回不來了。還需要這個群組的 App，下次要用時會拿到一個新的空資料夾，但原本裡面的東西，除非你另外留了副本，否則就沒了。

## 查出一個群組屬於誰

先用唯讀的方式看看裡面有什麼、各佔多大：

```sh
ls ~/Library/Group\ Containers
du -sh ~/Library/Group\ Containers/* 2>/dev/null | sort -h | tail -15
```

第一行列出所有群組，第二行顯示最大的十五個，最大的排在最後。macOS 可能會詢問「終端機」能不能取用其他 App 的資料，如果你拒絕，或某個資料夾回報權限錯誤、沒有顯示大小，只是代表它沒被量到，不代表它是空的。

接著查一個已安裝的 App 是哪個開發者簽署的，宣告了哪些群組：

```sh
codesign -dv "/Applications/Microsoft Teams.app" 2>&1 | grep TeamIdentifier
codesign -d --entitlements - "/Applications/Microsoft Teams.app" 2>/dev/null
```

`TeamIdentifier` 那一行應該和你懷疑的那些群組的前綴相符。第二個指令會印出 App 的授權項目，它所屬的群組列在 `com.apple.security.application-groups` 底下。

想找出還有哪些已安裝的 App 宣告了某個群組，就搜尋它們的簽署：

```sh
find /Applications ~/Applications -maxdepth 3 -name "*.app" -prune 2>/dev/null |
while read -r app; do
  codesign -d --entitlements - "$app" 2>/dev/null | grep -qF "UBF8T346G9.Office" && echo "$app"
done
```

它印出的每一行，都是自己的簽署裡宣告了這個群組的 App，這個群組就要留著。沒有輸出是很強的線索，但不是證明。這個迴圈只讀取每個 App 外層的簽署，而 App 裡面的小工具、延伸功能和輔助工具各有自己的簽署，裝在這兩個資料夾以外的 App 它也不會檢查。

## 哪些可以放心移除

下面幾條全部成立時，這個群組才是可以移除的殘留：

1. 名稱裡帶著你已經移除的 App 的完整 id，或帶著一個你已安裝的 App 都沒用來簽署的 Team ID。
2. 照上面的方法查過，沒有任何已安裝的 App 宣告它，`/Applications` 以外的 App 也算在內。
3. 它不是 Apple 的群組，也就是不以 `group.com.apple.` 或 `systemgroup.` 開頭，除非它正好是你移除的某個另外下載的 Apple App 自己的群組，例如 TestFlight。
4. 你看過裡面的內容，確定用不到了。聊天 App 的媒體或 Outlook 的郵件資料庫，App 移除之後仍然是你的東西。

然後結束這個開發者的所有 App，在 Finder 裡用 **前往 › 前往檔案夾** 找到這個資料夾，移到垃圾桶，過一陣子再清空垃圾桶。之後重新安裝這個 App，它會從一個全新的群組開始。`~/Library` 其他地方的清理，可以看[解除安裝 Mac App 後，如何清理殘留檔案](https://mole.fit/tw/blog/how-to-remove-leftover-files-after-uninstalling-mac-apps)，另外哪些地方看起來能刪其實不能刪，列在 [Mac 清理工具絕不可刪的內容](https://mole.fit/tw/blog/what-mac-cleaners-should-never-delete)裡。

## Mole 怎麼處理

[Mole](https://mole.fit/tw/) 只在解除安裝 App 時才會移除群組容器。它會找以這個 App 的 bundle id 命名的群組、帶有它 Team ID 的群組，以及 App 本身和裡面的延伸功能、登入項目、XPC 服務與輔助工具在簽署裡宣告的群組。和 App 完全同名的 `group.<bundle id>` 資料夾會預設勾選。`<TeamID>.<bundle id>` 資料夾、只是以 App id 開頭的群組，或 App 宣告的共用群組，會列出但不勾選，而屬於某個仍安裝著、id 更長更具體的 App 的群組，則根本不會列出。

每個群組移動前一刻，Mole 會再檢查一次。它會重新讀取同一開發者的已安裝 App 和啟用中的系統延伸功能，只要其中任何一個宣告了這個群組、它檢查過的 App 有變動或被重新安裝，或這份清單沒能及時讀出，就拒絕移動這個群組。某一列通過的結論，從不拿來套用到下一列。Apple 的 `group.com.apple.` 群組一律受保護，只有像 TestFlight 這種另外發佈的 Apple App 自己的群組例外，所以移除 Pages 時，`group.com.apple.iWork` 會留給 Numbers 和 Keynote。我在測試用的 Mac 上移除 Microsoft Teams 時，留下了 `UBF8T346G9.com.microsoft.teams`、`UBF8T346G9.com.microsoft.oneauth` 和 `UBF8T346G9.com.microsoft.entrabroker` 三個群組，Mole 把它們回報為受保護，而不是去猜。Office 的 `UBF8T346G9.Office` 和它的同伴，則是刻意不去動的。

解除安裝移除的所有東西都會進垃圾桶。在解除安裝之外，Group Containers 列在 Mole 受保護的使用者資料位置清單裡。「清理」裡的已解除安裝 App 殘留區塊，從不列出 `group.` 群組或共用群組，它唯一可能列出的群組容器，是沒有任何已安裝軟體認領其 id 的單一 App `<TeamID>.<bundle id>` 資料夾，而這項檢查沒辦法完成時，它一個都不列。其他清理的全貌，可以看 [Mac 哪些快取可以刪，哪些資料該保留？](https://mole.fit/tw/blog/which-mac-caches-are-safe-to-delete)和 [Office 解除安裝指南](https://mole.fit/tw/blog/how-to-uninstall-microsoft-office-mac)。

## 常見問題

### 可以把整個 Group Containers 資料夾刪掉嗎？

不行。裡面有仍安裝著的 App 的資料，包括備忘錄、提醒事項、iWork，以及你在用的郵件或聊天 App。只有在確認沒有已安裝的 App 宣告某個群組之後，才一個一個移除。

### 為什麼 App 解除安裝了，群組還在？

在 macOS 上，系統在 App 第一次需要時建立群組資料夾，之後從不移除，而且同一個群組可能還被這個開發者的其他 App 或延伸功能使用。把 App 拖到垃圾桶不會動到它。

### 刪掉一個已安裝的 App 還在用的群組會怎樣？

App 會失去裡面的內容，例如設定、登入狀態或本機資料，下次要用時會拿到一個空資料夾。所以群組要移到垃圾桶，而不是直接刪除，哪個 App 出問題時還能放回去。

---

Canonical HTML page: https://mole.fit/tw/blog/what-is-group-containers-mac
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
