06.05.2026 iOS-Simulator-Runtime: Festplattenbudget, selektive Installation und CI-Bereinigung auf einem geleasten Apple-Silicon-Cloud-Mac (HK / JP / KR / SG / US)
Hongkong, Tokio, Seoul, Singapur, USAInMac mini M4Miete einxcodebuild-TestDas Team, das sich umdreht, bemerkt sofort den zweiten Angriff.Simulatorlaufzeitist nicht frei,Bibliothek/Entwickler/CoreSimulatorunterordnenMehrere GB-MaßstabNimm ein Stück davonAbgeleitete Datenund konkurrieren um NVMe-Bandbreite, die sich verdoppelt, wenn watchOS-Begleiter in die Warteschlange aufgenommen werden. Das06.05.2026Der Leitfaden beantwortet drei betriebliche Fragen: Was ist drin?InventarSo wählen Sie nur die Betriebssystemfamilien aus, die Ziele wirklich benötigenwählenSo starten Sie nächtliche UI-Tests trotzdem, ohne die Laufzeit zu beendenpruneEs ist eine Methode.Headless-Simulator-Testverlängern undScheibenreinigungs-Hausmeisterauf demselben Host.ParallelspurBeim LaufenTrennung abgeleiteter DatenBitte beachten Sie
Warum CI im Jahr 2026 immer noch mit „Xcode installieren = Simulator bereit“ verwechselt wird
Xcode.app bündelt die Toolchain,Laufzeitist eine versionierte Nutzlast, die bei Bedarf gelöscht wird. Drei wiederholte Fehler:
- Zieldrift– YAML ist
iPhone 15Nach der Aktualisierung von Xcode ist der Host jedoch vorhandeniPhone 16Ich habe nur das Bild vorbereitet. - Stille Uhrenkopplung– Lokal hat Xcode die Watch-Laufzeit automatisch erfasst, CI jedoch nicht.
- Hausmeister übertrieben– cron hat die „alte“ Laufzeit gelöscht, die von der Qualitätssicherung für die Reproduktion des App Store-Absturzes noch benötigt wirdiOS 17.6verlieren.
Laufzeit-Footprint: Wo die Gigabyte lauern
Apple Silicon-Hosts verwalten Gerätedaten, gemeinsame Caches und Slices pro Laufzeit. Ungefähr für ein Paar der wichtigsten iOS-Laufzeiten (Gerät + Bild nach Jahr ansehen)7–14 GB. Noch mehr, wenn Sie ein Sprachpaket in die Screenshot-Spur der Benutzeroberfläche einfügen.3–6 GB. Wichtig sind nicht die genauen Bytes, sondern was passiert, wenn fünf Ingenieure denselben gemeinsamen Builder verwenden und die neueste Beta-Laufzeit installieren.DifferentialIst.
Laufzeit erhöhenVerzögerung in der WarteschlangeBitte beziehen Sie sich auf den freien Speicherplatz12 %Unten sind die ersten Symptome kein sofortiges Versagen.xctestDas Kopieren von Geräten ist in der Regel langsam. Dies liegt daran, dass es APFS schwerfällt, zusammenhängende Bereiche zu finden.
Neues Xcode-MaßBei der Verwendung handelt es sich beim Laufzeitabruf nicht um ein einzelnes Kontrollkästchen.KapazitätsmigrationIst. Eingabeaufforderung für Multi-Plattform-Pakete, CoreSimulator-Cache-Neuerstellung, nach dem ersten grünen Build24–48 StundenEs kommt zu einer impliziten Warmausdehnung. Bitte stellen Sie sicher, dass der Miethost über ein explizites Wartungsfenster verfügt und dass sich PR-Verkehr und anfängliche Massen-Downloads nicht überschneiden. Das ignorierte Team sieht, dass der rote Build ohne Codeänderungen am nächsten Tag verschwindet. an diesem FensterdfProtokollieren Sie es stündlich und vergleichen Sie es mit der stationären Kurve für das Vorquartal. Der Hang ist die Geschichte2×Wenn er größer ist, ist es sehr wahrscheinlich, dass überlappende Beta- und GA-Scheiben auf derselben Spur platziert wurden.
schließlichWer kann die Laufzeit einbauen?Bitte dokumentieren. Ein typisches Beispiel für eine persönliche Sudo-Installation, die zu „mysteriösen 6 GB“ gemeinsamer Schlüssel führt. Zentralisieren Sie Änderungen an Infrastrukturtickets und CI-Image-Tags,sshSitzungen können überwacht werden – insbesondere beim Speichern von SignaturmaterialienSingapurMoskitoBeitoDies ist ein Fall, in dem Vorschriften verbindlich sind.
Lane-Matrix: Welcher Host enthält welche Laufzeit?
Teilen Sie die Verantwortlichkeiten explizit auf und gehen Sie nicht davon aus, dass alle Läufer austauschbar sind.
| Spurbeschriftungen | Laufzeitrichtlinie | Reinigungsbesitzer |
|---|---|---|
ios-aktuell |
1 Flasche des neuesten GA-iOS- und App-Store-konformen N-1 | Wöchentlicher Schnitt + Eintrittskarte |
uhrenlastig |
Nur watchOS-Image + gekoppeltes Gerät | Monatlich; Löschen Sie N-1 nicht ohne Genehmigung der Qualitätssicherung |
Nur Archiv |
Simulator-Minimum; Das eigentliche Maschinenarchiv hat Vorrang | Aggressiv für den Simulator, sanft für die Tasten |
Inventarbefehl, den der Bediener in das Runbook einfügt
Beginnen Sie mit zerstörungsfreien Sonden und steigern Sie sich schrittweise.
xcrun simctl listet Laufzeiten auf
df -h /
du -sh ~/Library/Developer/CoreSimulator/* 2>/dev/null | sort -h | tail -n 20
Wenn die Nummern von denen im Finder abweichen, führen Sie sie als CI-Benutzer aus.duVertrauen Sie uns – gestartete Jobs werden auf Builder-Konten ausgeführt. Wenn es eine andere Lautstärke ist/Volumes/buildsAber ich wiederhole.
Selektives Installations-Runbook (Happy Path)
- Warteschlange einfrierenoder entleeren Sie das mit dem Host verknüpfte Label.
- Beziehen Sie für den nächsten Sprint nur die Laufzeitpakete in die Zielmatrix ein, die Sie wirklich benötigen.herunterladen.
- pro Laufzeit
xcrun simctl bootengeräuchert mitsysctl hw.modelÜberprüfen Sie, ob es sich weiterhin um Apple Silicon handelt. - Erhöhen Sie das Tag der Bildversion, um CI YAML mit der Realität abzugleichen.Lebenslaufwarteschlange.
- Installierte Sammlungen im Infrastruktur-Repositoryaufzeichnen(Machen Sie es nicht zu einem isolierten Wiki).
Zwischen Schritt 2 und 3, zum TicketPrüfsummeOder belassen Sie die Versionszeichenfolge von Apple und das Rollback ist klar, wenn die Laufzeit aufgrund eines defekten Spiegels unterbrochen ist.
Beschneidungsrichtlinie: Was kann gelöscht werden?
Ein guter Hausmeister istDerivatezu aggressiv,Laufzeitwird als semistatische Infrastruktur behandelt. Zweistufige Richtlinie:
| Leistungen | sichere Frequenz | Gefahr des Überschneidens |
|---|---|---|
| Nicht gestartetes Simulator-Terminal | täglich | Niedrig – Aus Vorlage neu erstellt |
alt.xcresultbündeln |
Nach dem Hochladen in den Objektspeicher | Mittel – Wenn Sie für die rechtliche Wartung 30–90 Tage außerhalb des Hosts benötigen. |
| Laufzeitpaketkörper | Vierteljährliche + QA-Liste | Hoch – beeinträchtigt die Reproduzierbarkeit der Crash-Reproduktion |
Parallele Spuren und integrierter Speicherdruck
parallelxcodebuildverstärkt die Abwanderung von Simulatoren. Bitte begrenzen Sie die Anzahl gleichzeitiger Startvorgänge pro Host mithilfe von Warteschlangenbezeichnungen.Parallel Joe-ArtikelSehen. Wenn der Speicherdruck seinen Höhepunkt erreicht, versuchen Sie es mit einem AustauschReduzieren Sie gleichzeitige Zielebevorzugt; XCTest ist extrem anfällig für Auslagerungen im einheitlichen Speicher.
sysdiagnoseHolen Sie sich einen Slice – der Festplattendruck erscheint zunächst als SpringBoard-Watchdog.Xcode-Upgrade-Fenster: Laufzeiterfassung und Archivreihenfolge
Sofern es keinen warmen zweiten Knoten gibt,Laufzeit großer DownloadUndDie TestFlight-Übermittlung friert nachts einBitte legen Sie sie nicht am selben Abend an. Der sicherste MacXCode-Host istblau/grüner Builder: Kandidatenbildxcodebuild-Testund Lichtxcodebuild-Archiv -archivePath /tmp/Smoke.xcarchiveBewerben Sie das Bild-Tag, nachdem beide grün werden. Wenn Sie sich Doppelknoten nicht leisten können, reduzieren Sie den Umfang: eine zusätzliche Laufzeit pro Wartungszeit, nicht fünf gleichzeitig. jedes DownloadsWanduhr MinutenAufzeichnungen und Finanzen sind getrennt1 TBErmöglicht Ihnen zu vergleichen, ob Sie einen Bauunternehmer mieten oder eine Wochenendveröffentlichung in Auftrag geben sollten.
Nach dem Upgrade wird die YAMLZielzeichenfolgeBitte überprüfen Sie es erneut. Apple ändert manchmal die Namen der Simulator-Hardwareprofile. Die Nichtübereinstimmung sieht aus wie „Ziel nicht gefunden“simctl-Listescheint ausgefüllt zu sein – höchstwahrscheinlich, weil der Job auf eine Hardware-Zeichenfolge verweist, die bereinigt wurde.simctl listet die verfügbaren Geräte aufBitte unterscheiden Sie den maschinenlesbaren Export von infrarepo.
Numerische Ziele in Grafana
- Permanente Festplattennutzung vor Paging-Vorgängen85 %Obergrenze.
- 16 GBAuf Maschinen können gestartete Simulatoren bis zu laufen4Der Stand.
- Obergrenze der Kaltakzeptanz für „Laufzeiterfassung + Startup + einzelner XCTest“22 Minuten; Warnung bei Überschreitung nach dem Upgrade.
9 Schritte vor dem Löschen eines „riesigen Ordners“
- Stellen Sie sicher, dass keine Archivierungsaufträge ausgeführt werden.
- aktuell
simctl-ListeSnapshot zu GitOps. - Vergangenheit30 TageIdentifizieren Sie die Laufzeit von Job Null.
- Benachrichtigen Sie die Qualitätssicherung mit einem expliziten Entfernungsdatum.
- Entleeren Sie jeweils nur eine Spur.
- Laufzeitlöschung nur mit unterstützten UI-/CLI-Pfaden.
- Smoke am verbleibenden Ziel erneut ausführen.
- Vor und nach dem Löschen
dfVergleichen Sie und fügen Sie die Differenz dem Ticket bei. - Erweiterte Tags nur mit fehlerfreien Hosts.
FAQ: Beta, Apple Silicon, Cross-Region Hosting
| Frage | Praktische Antworten (06.05.2026) |
|---|---|
| Sollte ich Beta-Laufzeiten in das Produktions-CI einfügen? | Isoliert auf als Kanarienvogel bezeichneten Wirt; nicht mit App Store-Übermittlungsspuren vermischt. |
| Müssen die Gastgeber aus Singapur und den USA in derselben Gruppe sein? | An den gemeinsamen Mindestsatz anpassen; Regionsspezifische Ergänzungen sind möglich, sofern sie in YAML kodiert sind. |
Warum der Mac mini M4 mit 1–2 TB bei simulatorbasiertem CI gewinnt
Simulatorlast istzufälliges LesenEs ist nah. MacXCode-Knoten Bare MetalMac mini M4NVMe sorgt dafür, dass die Startzeiten vorhersehbar sind, selbst wenn die vier Lanes unterschiedliche Betriebssystemgenerationen mit derselben PR-Matrix starten. Diese Vorhersehbarkeit macht numerisches Budgetieren zu Disziplin, besser als der Kauf der mysteriösen „Cloud-Festplatte mit hoher Kapazität“ hinter Noisy Neighbor. Die Kapazitätsplanung ist die zweiteJPWenn Sie nach Kanarienvogel fragenRegionale Preise, wenn die Sicherheit einen Nachweis darüber verlangt, wer die Laufzeit gelöscht hatSSH/VNC-ZugriffsanleitungBitte hinzufügen.
Fügen Sie NVMe-Spielraum hinzu, bevor die Laufzeitwucherung zurückkehrt
Mac mini M4 · HK / JP / KR / SG / US · SSH / optional VNC