2014-09-19 6 views
13

Was ist ein praktischer Weg, um den Zustand "nicht genügend Speicherplatz" mit dem iOS Simulator zu testen?Wie kann ich den iOS-Simulator verwenden, um den Speicherplatz zu simulieren?

+2

Sie das entsprechende Verzeichnis unter 'Library/Entwickler/CoreSimulator/Devices' nehmen könnte; und Montieren einer Partition mit begrenzter Größe an dem Gerätebild, z. Erstellen Sie ein Disk-Image, kopieren Sie den Inhalt des ursprünglichen Geräts in das Disk-Image und versuchen Sie es dann. Dies ist keine Antwort, denn es ist eine Menge Aufwand und entspricht nicht der realen Situation auf einem Gerät – Petesh

Antwort

0

Dies ist im Simulator nicht praktikabel (Sie müssten die Festplatte Ihres Macs auffüllen.) Der beste Weg, diesen Testfall zu erreichen, besteht darin, ein tatsächliches Gerät zu verwenden und Musik über iTunes zu laden und auf dem Gerät zu testen.

+0

Sind Sie sich bewusst, einen schnellen Weg, dies zu tun? Ich habe ein brandneues iPad, das wir als Testgerät haben und 25GB ziemlich schnell füllen müssen. – akousmata

+0

Schneller Weg, um mit Musik zu füllen, meinen Sie? Ich würde vielleicht sogar Videos ausprobieren. – Woodstock

+1

Ja, genau das habe ich getan, einfach die Kamera angemacht und für ein paar Stunden laufen lassen. – akousmata

22

Erstellen Sie eine kleine Scheibe Bild:

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

Berg es in das entsprechende Verzeichnis in Ihrem Simulator app, z.B .:

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

Run App und Ihre Tests durchführen. Dies kann auch während der App ausgeführt werden. In diesem Fall möchten Sie es wahrscheinlich nicht als Caches oder Documents Verzeichnis direkt mounten, da dies die aktuellen Dateien in diesen Ordnern verbergen würde. Mounten Sie stattdessen in ein Unterverzeichnis. Wenn dies nicht ohne weiteres möglich ist, ohne die Pfade in Ihrer App zu ändern, mounten Sie das Image an einer anderen Stelle und kopieren Sie die Daten, bevor Sie sie über das nichtleere Verzeichnis kopieren.

Zum Aushängen:

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

Beachten Sie jedoch, dass der Trennvorgang schlägt fehl, wenn der Mount-Punkt bewegt wird. Dies passiert die ganze Zeit, weil Apple bei jeder Ausführung einer App Simulator-Verzeichnisse auf iOS 8 umbenennt. In diesem Fall verwenden Sie den Befehl mount, um das Gerät zu finden, das Sie installiert haben, z. /dev/disk3s1 /Users/.../Library/..., aushängen dann das Disk-Image mit dem Gerätenamen anstelle des Mount-Punkt:

hdiutil detach disk3s1 
+0

Arbeitete großartig für mich. Danke für die Antwort. – azdev

+0

Das hat funktioniert. Beachten Sie auch, dass das Dienstprogramm 'mkfile' (unter Mac OS X) hilfreich war, um den leeren Bereich mit einer benutzerdefinierten Datei zu füllen. – Protongun

+0

Große Antwort. Zumindest in Xcode 9 ändert die Ausführung der App im selben Simulator nicht den Verzeichnisnamen, sodass Sie dasselbe Mount für mehrere Läufe verwenden können. – stevex

Verwandte Themen