2014-09-19 99 views
13

使用iOS模擬器測試「磁盤空間不足」情況的實用方法是什麼?如何使用iOS模擬器模擬磁盤空間不足情況?

+2

你可以採取下面的'庫/開發商/ CoreSimulator/Devices'相關目錄;並在設備圖像上安裝有限尺寸的分區,例如,製作磁盤映像,將原始設備的內容複製到磁盤映像中,然後嘗試。這不是一個答案,因爲這是一個很大的努力,並不符合設備上的真實情況 – Petesh 2014-09-19 10:34:42

回答

0

這在模擬器上不實用(你必須填滿你的Mac磁盤)。實現這個測試用例的最好方法是使用一個實際的設備,並通過iTunes填充音樂並在設備上測試。

+0

你知道一個快速的方法來做到這一點嗎?我有一臺全新的iPad作爲測試設備,需要快速填充25GB。 – akousmata 2016-03-23 17:55:08

+0

快速填充音樂的方式意味着什麼?我其實也可以試試視頻。 – Woodstock 2016-03-23 18:35:32

+1

是的,這就是我所做的,只需打開相機,讓它運行幾個小時。 – akousmata 2016-03-24 15:35:35

22

創建一個小的磁盤映像:

hdiutil create -size 2m -fs HFS+ /tmp/2meg.dmg 

它安裝在你的模擬器應用程序相關的目錄,例如:

hdiutil attach /tmp/2meg.dmg -mountpoint /Users/.../Library/Developer/CoreSimulator/Devices/.../data/Applications/.../Library/Caches 

運行的應用程序,並執行測試。這也可以在應用程序運行時完成。在這種情況下,您可能不希望將其直接掛載爲CachesDocuments目錄,因爲這會隱藏這些文件夾中的當前文件。改爲裝入子目錄。如果在不改變應用程序中的路徑的情況下很難做到這一點,請將映像掛載到其他位置,然後將數據複製到非空目錄的頂部。

要卸載:

hdiutil detach /Users/.../Library/Developer/CoreSimulator/Devi... 

但是,請注意,如果安裝點移動時,分離操作將失敗。這種情況一直髮生,因爲每次運行應用程序時,Apple都會在iOS 8上重命名模擬器目錄。在這種情況下,使用mount命令查找您已裝入的設備,例如, /dev/disk3s1 /Users/.../Library/...,然後使用,而不是掛載點的設備名稱卸載磁盤映像:

hdiutil detach disk3s1 
+0

工作對我很好。感謝你的回答。 – azdev 2016-01-26 20:54:57

+0

這工作。另外,請注意''mkfile'實用程序(在Mac OS X上)對我填充空白空間和自定義大小文件很有幫助。 – Protongun 2016-07-20 02:44:17

+0

很棒的回答。此外,至少在Xcode 9中,在同一個模擬器中再次運行應用程序不會更改目錄名稱,因此可以使用相同的裝載進行多次運行。 – stevex 2017-08-02 13:19:34