訊息
訊息匯出的運作方式,從連接到排解問題。
連接
在訊息卡片上按「連接」。面板會在 ~/Library/Messages 中打開:按「選擇此資料夾」。Exporter 只讀取這個資料夾,不需要完整磁碟取用權限。然後按「選擇輸出檔案夾」。
首次讀取會把你的整個歷史紀錄讀進 App 的索引,歷史很長時需要幾分鐘;已建立索引 列會顯示進度,完成之前「立即同步」會一直呈灰色。
檔案存放的位置
每個對話一個 Markdown 檔案,全部位於匯出資料夾的最上層:一個人的對話是 Anna Kowalski.md。群組的檔名帶有對話 ID,例如 Cabin crew-57.md,所以有新成員加入時檔案也不會改名。照片、影片和音訊放進 attachments/,每個對話一個資料夾。直接位於個人專屬資料夾中的資料夾(例如 ~/Documents)會在其中建立 messages-export 資料夾;更深層的資料夾(例如 ~/Documents/messages)則直接使用。
匯出的內容
卡片上勾選的對話。標籤頁只會篩選清單:「全部」、「單人」、「群組」、「最近」(最近 30 天)、「常看」(訊息最多)和「未讀」。
同步只會寫出有新內容的對話。解鎖訊息後,下一次同步會寫出所有對話。勾選較舊的對話後,按「完全重新同步」就能立即寫出它;否則它會在下次收到訊息時才出現。
檔案中每天一個標題,接著每則訊息一個區塊:誰傳的、什麼時候傳的,以及一個可在「訊息」中打開該對話的連結。回覆會連結到它所回應的訊息,編輯會把每個較早的版本保留為註腳,回應放在訊息下方的一行,每則訊息最後都有一個可以連結的區塊 ID。如果也匯出了聯絡人,每位參與者都會連結到他們的聯絡人檔案,聯絡人檔案也會反過來列出相關的對話。
媒體
照片、影片和音訊會拷貝到 attachments/,iPhone 的 HEIC 照片會轉換成 JPEG,讓編輯器能顯示。從未下載到這台 Mac 的媒體,會在檔案中列出名稱,而不是嵌入。
格式
一律是 Markdown。
檔案
| 鍵 | 內容 |
|---|---|
title |
對方或群組 |
id |
對話的 ID |
created、modified |
第一則和最新一則訊息 |
source_url |
指向第一位參與者的 sms:// 連結,會打開該對話 |
participants |
每個人(匯出了聯絡人時,以指向其聯絡人檔案的連結表示),以及 Me |
is_group |
群組為 true |
message_count |
訊息數量 |
service |
對話使用的服務,例如 iMessage |
---
title: "Anna Kowalski"
id: "412"
created: 2026-03-09T18:02:11
modified: 2026-03-09T18:04:10
source_url: "sms://+14155550123"
participants: ["[[contacts/Anna Kowalski]]", "Me"]
is_group: false
message_count: 2
service: "iMessage"
---
# Anna Kowalski
## Monday, March 9, 2026
**[[contacts/Anna Kowalski|Anna Kowalski]]** [open](sms://+14155550123) (2026-03-09 18:02:11)
Are we still on for the cabin weekend?
^msg-7C1E2A9B4F30
**[Me]** (2026-03-09 18:04:10)
> replying to [[#^msg-7C1E2A9B4F30]]
Yes! Ferry at 9:40 on Friday (edited) [^e1]
> 👍 Anna Kowalski
^msg-A83D5E6F0B12
[^e1]: was "Yes! Ferry at 9:10 on Friday" (2026-03-09 18:04:10)
免費與解鎖
在你勾選的對話中,最近的 10 個對話可免費匯出並持續同步;其餘需要一次性解鎖(價格)。
同步與完全重新同步
Exporter 執行時,新訊息會進入索引,它們所屬的對話也會重新寫出。在「訊息」中刪除的對話,會在下一次同步時從匯出內容中移除。
「完全重新同步」會先詢問,然後只移除 Exporter 寫出的檔案(包括拷貝的媒體),再從索引重新寫出每個對話。匯出資料夾中的其他內容都會保留。
問題與解決方法
- 「該資料夾中沒有 chat.db(請選擇 Messages 資料夾本身)」:再按一次「連接」,然後選擇面板打開的那個資料夾
- 「立即同步」呈灰色:首次讀取仍在進行;
已建立索引列會顯示進度 - 解鎖後缺少較舊的對話:按「立即同步」,它會寫出所有對話
- 少了一張照片:在「訊息」中打開該對話讓照片下載,然後再同步一次
- 名字是純文字:也匯出聯絡人。之後寫出的對話會連結其中的人,按「完全重新同步」則會立即重新寫出所有對話