Как я могу использовать iOS Simulator для моделирования состояния дискового пространства?

Каков практический способ протестировать состояние "из дискового пространства" с помощью iOS Simulator?

Ответ 1

Создайте образ небольшого диска:

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

Установите его в соответствующий каталог в вашем приложении для симулятора, например:

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

Запустите приложение и выполните тесты. Это также можно сделать во время работы приложения. В этом случае вы, вероятно, не хотите монтировать его как каталог Caches или Documents потому что это скроет текущие файлы в этих папках. Вместо этого установите в подкаталог. Если это невозможно без изменения путей в вашем приложении, смонтируйте изображение в другом месте и скопируйте данные, прежде чем устанавливать его поверх непустого каталога.

Чтобы отключить:

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

Однако обратите внимание, что операция отсоединения не выполняется, если точка монтирования перемещена. Это происходит постоянно, потому что Apple переименовывает каталоги симуляторов на iOS 8 каждый раз, когда приложение запускается. В этом случае используйте команду mount чтобы найти устройство, которое вы установили, например /dev/disk3s1/Users/.../Library/..., затем отключите образ диска, используя имя устройства, а не точку монтирования:

hdiutil detach disk3s1

Ответ 2

Это не практично на симуляторе (вам нужно будет заполнить свой Mac-диск). Лучший способ добиться этого теста - использовать фактическое устройство и заполнить музыку через iTunes и протестировать устройство.