iOS 開發者必備技巧:將 iOS Simulator 檔案匯出到 Mac 的三種方法
然而,iOS Simulator 就像一個獨立的沙盒 (Sandbox),它的檔案系統與我們的 Mac 是隔離的。這使得「把檔案拿出來」這件看似簡單的小事,有時候會變得有點繁瑣。
這篇文章整理了三種從 iOS Simulator 匯出檔案最快、最實用的方法,無論你是要檢查 App 產生的文件,還是要深入查看 CoreData 資料庫,都能找到適合你的解法。
方法一:透過「檔案 (Files)」App 拖曳
💡 推薦情境:模擬真實用戶行為、檢查使用者匯出的文件 (PDF, PPT, 圖片)
這是最直覺、也最接近真實用戶操作體驗的方法。如果你的 App 已經實作了 UIActivityViewController (分享選單) 或 UIDocumentPicker,這絕對是你的首選。
操作步驟:
- 在 App 內儲存檔案:在你的 App 中觸發分享或儲存動作,選擇「儲存到檔案 (Save to Files)」。
- 開啟 Simulator 的 Files App:回到模擬器桌面,打開系統內建的「檔案 (Files)」App。
- 找到檔案:瀏覽到剛剛儲存的位置 (通常在「我的 iPhone」或 App 的專屬資料夾下)。
- 拖曳到 Mac:這是一個隱藏的小技巧!直接用滑鼠按住 Simulator 裡的檔案,將它拖拉 (Drag) 出模擬器視窗,丟到你的 Mac 桌面。
注意:這項「跨視窗拖曳」的功能在較新的 Xcode (11+) 與 Simulator 版本中才支援,它打破了模擬器與主機的界線,非常方便!
方法二:印出路徑 (SandBox Path)
💡 推薦情境:開發者除錯、尋找暫存檔 (tmp)、查看 App 內部資料 (Library, Documents)
如果你需要存取的是 App 內部的隱藏資料,例如 CoreData 的 .sqlite 檔案、UserDefaults 的 plist,或是放在 tmp 資料夾的暫存檔,這些通常無法透過 Files App 存取。這時候,直接問程式碼最快。
操作步驟:
- 加入 Log 程式碼:在你的
ViewController的viewDidLoad或任何產生檔案的地方,加入這行 Swift 程式碼:print(NSHomeDirectory()) - 執行並查看 Console:執行 App,觀察 Xcode 下方的 Console 輸出。你會看到一串長得很像這樣的路徑:
/Users/Daniel/Library/Developer/CoreSimulator/Devices/XXXXXXXX-XXXX/data/Containers/Data/Application/YYYYYYYY-YYYY/... - 前往資料夾:
- 複製該路徑。
- 切換到 Mac 的 Finder。
- 按下快速鍵 Cmd + Shift + G (前往資料夾)。
- 貼上路徑並按下 Enter。
你現在就位於該 App 的沙盒根目錄了!通常你的文件會或是 Documents 資料夾,暫存檔則在 tmp 資料夾。
方法三:使用輔助工具 (OpenSim / SimSim)
💡 推薦情境:長期開發、頻繁需要進入沙盒
方法二雖然有效,但有一個致命傷:模擬器的 UUID (路徑中的那一串亂碼) 是會變動的。如果你重新安裝 App 或更換模擬器裝置,路徑就會改變,你又得重新印一次路徑。
為了節省生命,強烈建議安裝專門管理模擬器檔案的小工具,例如 OpenSim 或 SimSim。
為什麼推薦?
這類工具會常駐在 Mac 的選單列 (Menu Bar)。你只需要:
- 點一下工具 icon。
- 在清單中選擇目前執行中的 App。
- 它會直接在 Finder 開啟該 App 的 Sandbox 資料夾。
就這麼簡單,完全不需要記路徑!
安裝方式
如果你有使用 Homebrew,可以直接透過指令安裝 OpenSim:
brew install --cask opensim
總結:我該透過哪種方式?
| 方法 | 適合情境 | 優點 | 缺點 |
|---|---|---|---|
| Files App 拖曳 | 檢查產出文件 (PDF/PPT) | 模擬真實行為、操作直覺 | 需要 App 實作儲存功能 |
| 印出路徑 | 偶爾除錯、查看內部資料 | 不需安裝額外工具 | 路徑冗長、UUID 會變動 |
| 輔助工具 (OpenSim) | 專業開發者、頻繁除錯 | 快速、一鍵開啟 | 需要額外安裝 App |
下次當你需要檢查 App 產生的檔案是否完美時,試試看直接從 Simulator 的 Files App 拖出來吧!這不僅快,還能順便測試你的「儲存到檔案」功能是否正常運作。

加入對話