Release Notes
Alle Versionen des Xcode Developer Toolbox Light — Neuerungen, Verbesserungen und Bugfixes auf einen Blick.
Programme
- Neu: Befehlsgruppe „Programme" — installierte macOS-Apps direkt öffnen (Apple-Tools, System, Drittanbieter)
Xcode-Integration
- Finder-Links für Build-Logs, SourcePackages, Device Logs und Xcode-Logs
- Command Line Tools installieren, Lizenz akzeptieren, Versionen anzeigen
- Preferences zurücksetzen (
com.apple.dt.Xcode.plist), UserData zurücksetzen
Simulator
- Push-Notification-Templates lokalisiert; App vor Push automatisch beenden
- Berechtigungen lokalisiert; App kalt neu starten; Thermischen Zustand simulieren
- Status anzeigen, neuen Simulator erstellen, alle zurücksetzen, alle löschen, Cache löschen
Lokalisierung
- Leere Übersetzungen finden; Fortschrittsbalken pro Sprache; Suche in .xcstrings; XLIFF exportieren
Clean & Cache
- 3 neue Cleanup-Stufen: Sicher, Tief und Komplett
Menü
- Pane-Höhe fest auf 16 Zeilen; Cache-Browser mit Gruppenüberschriften
Infrastruktur
- 5 neue Unit-Test-Klassen (
MockCommandRunner)
Ansichtsmodus
- Neue Browser-Ansicht —
SPACEwechselt zwischen Xcode-Modus (Split-Pane-Menü) und Verzeichnis-Browser; Direkt-HotkeysShift+X/Shift+Bohne Overlay; aus dem separaten Tool XDIRCX portiert und nahtlos integriert; identische Terminal-Höhe in beiden Modi — kein Scrollen beim Wechsel
Architektur
- Neue Architektur — klare Schichtenarchitektur mit strikter Trennung von UI, Logik und Infrastruktur
- Asynchrone Größenberechnung — Menü reagiert sofort; Werte werden im Hintergrund berechnet
Menü & UX
- Trenner jetzt auch in der linken Kategorienspalte; Reihenfolge der Kategorien überarbeitet
- Hotkey-Leiste (Ziffern 1–9) neu belegt
Projekt
- Projekt/Initialisieren erweitert — Arbeitsverzeichnis, Schema, TestSchema und Gerät direkt von hier wählbar, ohne das Menü verlassen zu müssen
Clean & Cache
- „Alle Caches anzeigen": alle auf einmal löschen (SPM-Cache aus Stabilitätsgründen ausgenommen)
Test & Code Coverage
- Code Coverage-Baum zeigt nur noch testbare Artefakte — Build-Verzeichnisse und Hilfsdateien ausgeblendet
Bugfixes
- Bugfix: Projekt > Aktualisieren > Ausgabe korrigiert
- Bugfix: Unit-Tests mit Testplänen — Testpläne wurden nicht korrekt eingebunden (2 Korrekturen)
Sonstiges
- Spendenlink: PayPal → buymeacoffee
App Store & Distribution
- Neue Befehlsgruppe „App Store & Distribution" — vollautomatische Auslieferung für iOS und macOS; Release-Übersicht mit Ampelstatus; persistente App-Parameter (Keychain für Passwort/API-Key); iOS: Archive, IPA, Upload; macOS: Archive, Export, Upload, DMG, Notarisieren, Staple; Release-Checks und Release Notes aus Git; Dateianzeige
Automatisierte Tests
- Neue Befehlsgruppe „Automatisierte Tests" — konfigurierbares Intervall (1 min – 24 h), Schemes und Testpläne auswählbar, Live-Anzeige der Ergebnisse, macOS-Benachrichtigung nach Abschluss
Hilfe-Overlay
- Neues Hilfe-Overlay — kontextsensitiver, scrollbarer Hilfetext per
[H]für jeden Menüeintrag
Lokalisierung
- Neue Befehlsgruppe „Lokalisierung" — Sprachen anzeigen, fehlende Übersetzungsschlüssel finden, Konsistenzprüfung über alle Sprachdateien
Projektkonfiguration & Struktur
- Die Projektkonfiguration wurde auf 11 Reiter erweitert: General, Signing, Resource Tags, Info, Build Settings, Build Phases, Build Rules, Entitlements, xcconfig, Privacy Manifest und StoreKit.
- Mit dem neuen Befehl actionProjectStructure() lässt sich die vollständige Projektstruktur farbcodiert anzeigen.
- Die Gruppe wurde in „Projekt" umbenannt, und actionProjectSelect() wählt die JSON-Konfiguration nun persistent aus.
- Eine Migration für das Legacy-Schema sowie eine Sicherheitsprüfung gegen das versehentliche Löschen von Systemverzeichnissen wurden ergänzt.
Binäranalyse
- Neue Binäranalyse — 8 Aktionen: Frameworks, Architekturen, Segmentgrößen, Symbole, Load Commands, Min-iOS-Version, Entitlements
Developer Infos
- Neue Kategorie „Developer Infos" — Übersicht, Apple/Xcode/iOS/macOS/Swift Releases, Swift Evolution, News, Sicherheitsupdates, SwiftUI & Frameworks
Sicherheit
- In Phase 1 der Sicherheitshärtung wird shellQuote() konsequent für alle Shell-Aufrufe verwendet, um Injection-Angriffe zu verhindern.
- Der Zugriff auf operationAborted ist nun durch NSLock thread-sicher abgesichert.
- Sämtliche try?-Aufrufe wurden durch do/try/catch ersetzt, sodass Fehler sauber behandelt und protokolliert werden.
- Vor dem Aufruf externer Tools wird deren Verfügbarkeit explizit geprüft.
- Pfade werden gegen Traversal-Angriffe validiert, und für nicht UTF-8-konforme Eingaben gibt es robuste Fallbacks.
Menü
- Neue Kategorien ins Split-Pane integriert (inkl. App Store & Distribution); Hotkey-Leiste und Abschnitts-Header aktualisiert
- Neu: DerivedData-Browser — interaktiver Browser für Unterverzeichnisse mit Größenanzeige und gezieltem Löschen
- Neu: Erweiterter Cache-Browser — „Alle Caches anzeigen" öffnet navigierbaren Browser für alle Xcode-Caches
- Neu: Build-Einstellungen anzeigen —
actionShowBuildSettings()in „Build & Run" - Neu: Kategorie „Steuerung" im Split-Pane — 12 Simulator-Steuerbefehle: Push-Notifications (9 Templates), Berechtigungen, Medien, Deep Link, Status Bar (mock/reset), Standort, Keychain, App-Datenordner
- Neu: Alle Simulatoren anzeigen/stoppen; nicht verfügbare Simulatoren aufräumen
- Menü: Abhängigkeiten aus eigener Kategorie in „Build & Run" verschoben
- Debug-Mode: Diagnoseausgaben in Shell.swift nur noch im Debug-Build sichtbar
- README-Dateien und Website aktualisiert
Physische Geräte
- Neu: Apps auf physische Geräte aufspielen — Bauen, Installieren und Starten direkt auf iPhones und iPads
- DeviceSelector erweitert: physische Geräte neben Simulatoren auswählbar; zuletzt gewähltes Gerät wird gespeichert
- Dashboard zeigt aktives Gerät (Simulator oder physisch) einheitlich an
- Unit-/UI-Tests jetzt auch auf physischen Geräten ausführbar; xcresult-Nachtrag auch nach Ctrl+C
Simulator
isSimulatorBooted()prüft Simulator-Zustand vor Screenshot, Video und Dark/Light Mode; klare Fehlermeldung statt stiller Fehler- Simulator neu starten: wartet via
simctl bootstatus -bauf vollständigen Start; per Ctrl+C abbrechbar - Bugfix: Videoaufnahme — echte Fehlerbehandlung statt
try?; kein falsches „Gespeichert" bei nicht laufendem Simulator - Bugfix:
timeout-Befehl (Linux-only) entfernt; bootDevice(), Restart, Reset und Stop verwendenrunShellLivemit Ctrl+C-Unterstützung
Tests
IDE_TESTING_DEVICE_SUPPORT_DIAGNOSTICS=NOzu Speed-Flags ergänztprintExecutedCommand()— xcodebuild-Befehl vor Teststart mehrzeilig und lesbar ausgeben- Konfigurations-/Signing-Fehler aus xcodebuild-Output im Test-Report sichtbar
- Tastendruck nach
operationAborted-Abbruch erforderlich (kein sofortiges Zurückspringen mehr)
UX & Bugfixes
- Menüfarbe vereinheitlicht — boldMagenta → boldBlue
- Emoji-Argumente aus
printSubSectionTitle()entfernt - Bugfix: Darkmode-Menü —
isDarkMode()nutzt jetztUserDefaults.standardstatt Shell-Aufruf - Bugfix: macOS-App — Device-Auswahl beim Wechsel des Arbeitsverzeichnisses übersprungen
Projekt-Manager
- Neu: Projekt-Manager — Repositories aus JSON-Konfiguration initialisieren, aktualisieren und löschen (temporäres Verzeichnis, read-only; keine Commits/Pushes)
- Submodul-Unterstützung — Branch-Strategie konfigurierbar:
follow_parent,pinnedoder expliziter Branch-Name
Performance & Stabilität
- Persistenter Raw-Mode: keine „^[[A"-Echo-Artefakte mehr bei Pfeiltasten
- Signal-Handler für SIGINT/SIGTERM/SIGHUP/SIGQUIT + atexit: sauberer Terminal-Cleanup inkl. Cursor-Restore
- Git-Branch und AppleInterfaceStyle gecacht — kein Fork-/Shell-Call pro Frame mehr
- Kategorien nur nach Aktionsänderungen neu gebaut — spart Lookups pro Tastendruck
- FileBrowser: stabile ESC-Sequenz-Erkennung via VTIME=1
Hotkeys & Eingabe
- Hotkey-Leiste (Ziffern 1–9) unterhalb des Split-Panes: 9 häufige Aktionen direkt per Taste erreichbar
[x]als Zurück-Taste; Simulator-Schleifen mit[+]ohne EnterautoConfirmHotkey: Sicherheitsabfragen bei Hotkey-Aktionen automatisch bestätigtactionCancelled-Flag; „Abgebrochen"-Meldung; ActivitySpinner für Cache-Aktionen
Build & Test
- Build/Test-Ausgabe im Report-Navigator-Stil; XcodeBuildFormatter mit Ziel in Phasen-Headern (▸)
- Split-Pane: linke Spalte 15 → 18 Zeichen breit
- Timeline mit 3 Zuständen: Erfolgreich, Technischer Fehler, Echte Fehler
- Neue Testmenü-Optionen: „Für Tests kompilieren" und „Tests ausführen (ohne Build)"
- Live-SPM-Paketliste mit Status-Indikatoren (○/⠋/✓/✗)
Bugfixes
- Darkmode-Darstellungsproblem im Hauptmenü behoben
- CocoaPods-Abhängigkeitsanzeige korrigiert
- Parametrisierte Swift Testing Tests werden jetzt korrekt erkannt
- Bugfix: „Bauen" (nur kompilieren) funktioniert jetzt auch für macOS-Apps
- Bugfix: Doppeltes DerivedData-Verzeichnis bei macOS behoben
- Bugfix: „App deinstallieren & frisch testen" — Rückfrage, ob neu gebaut werden soll, wenn kein Build vorhanden ist
- Header & UI vereinheitlicht:
printActionHeader()bei Schema-, Device-, Konfig- und Sprachwahl - [A]-Workflow: weniger Tastatureingaben beim Wechsel des Arbeitsverzeichnisses
- Beim Bauen: Anzeige, wo die App gebaut wurde; beim Starten: Anzeige der gestarteten App
- Tests:
printTestSummary()entfernt; BuildTimeline pro Simulator - TestPlanResolver: Fallback auf
selectTestScheme()statt Abbruch - SPM „Package.resolved": Aktions-Header ergänzt (17 Sprachen)
printBuiltAppInfo(): Rahmenlinien bereinigt; App-Pfad auf eigener Zeile
- Initiale Veröffentlichung mit den Kategorien: Clean & Cache, Abhängigkeiten, Build & Run, Simulator, Tests, Sonstiges, Xcode
- Split-Pane-Menü mit Pfeiltasten-Navigation und persistenten Einstellungen
- Build-Speed-Flags und
-derivedDataPathüberall gesetzt (auch bei Resolve) - DerivedData: nur App-Ordner gelöscht, nie alles
- Build & Run (Simulator + macOS), Quick Reset & Build, Full Reset & Build
- Clean & Cache (8 Aktionen); Abhängigkeiten: SPM, CocoaPods, Carthage — anzeigen und auflösen
- Tests: Unit, UI, Alle — mit parallelem Testen auf mehreren Simulatoren
- Simulator: Starten, Stoppen, Reset, Screenshot (PNG), Video (MP4), Dark/Light Mode
- Sonstiges: Tools & Versionen, Datei-Metriken, Projekt-Metriken
- Arbeitsverzeichnis über Datei-Browser wählen; Quit nur mit Groß-Q
- Vollständig DE/EN lokalisiert
- Bugfix: Doppeltes DerivedData-Verzeichnis bei Resolve behoben (6 Stellen)
Release Notes
All versions of Xcode Developer Toolbox Light — new features, improvements and bug fixes at a glance.
Applications
- New: command group "Applications" — open installed macOS apps directly (Apple tools, system, third-party)
Xcode Integration
- Finder shortcuts for build logs, SourcePackages, device logs and Xcode logs
- Install Command Line Tools, accept licence, show installed versions
- Reset preferences (
com.apple.dt.Xcode.plist), reset UserData
Simulator
- Localised push notification templates; automatically quit app before push test
- Localised permission display; cold-restart app; simulate thermal state
- Show status, create new simulator, reset all, delete all, clear cache
Localisation
- Find empty translations; progress bar per language; search in .xcstrings; export XLIFF
Clean & Cache
- 3 new cleanup levels: Safe, Deep and Full
Menu
- Pane height fixed at 16 rows; cache browser with section headers
Infrastructure
- 5 new unit test classes (
MockCommandRunner)
View Mode
- New browser view —
SPACEswitches between Xcode mode (split-pane menu) and a directory browser; direct hotkeysShift+X/Shift+Bwithout overlay; ported from the separate XDIRCX tool and integrated seamlessly; identical terminal height in both modes — no scrolling when switching
Architecture
- New architecture — clear layered design with strict separation of UI, logic, and infrastructure
- Asynchronous size calculation — menu responds immediately; values computed in the background
Menu & UX
- Separator lines now also in the left category column; category order revised
- Hotkey bar (digits 1–9) reassigned
Project
- Project / Initialise extended — working directory, scheme, test scheme, and device can now be selected directly from the initialise view, without leaving the menu
Clean & Cache
- "Show all caches": delete all at once (SPM cache excluded for stability reasons)
Test & Code Coverage
- Coverage tree now shows only testable artefacts — build directories and helper files are hidden
Bug Fixes
- Bug fix: Project > Update > output corrected
- Bug fix: unit tests with test plans — test plans were not correctly applied (2 corrections)
Miscellaneous
- Donation link: PayPal → buymeacoffee
App Store & Distribution
- New command group "App Store & Distribution" — fully automated delivery for iOS and macOS; release overview with traffic-light status; persistent app parameters (Keychain for password/API key); iOS: archive, IPA, upload; macOS: archive, export, upload, DMG, notarise, staple; release checks and release notes from Git; file viewer
Automated Tests
- New command group "Automated Tests" — configurable interval (1 min – 24 h), selectable schemes and test plans, live result display, macOS notification on completion
Help Overlay
- New Help Overlay — context-sensitive, scrollable help text via
[H]for every menu entry
Localization
- New command group "Localization" — show languages, find missing translation keys, consistency check across all language files
Project Configuration & Structure
- The project configuration has been expanded to 11 tabs: General, Signing, Resource Tags, Info, Build Settings, Build Phases, Build Rules, Entitlements, xcconfig, Privacy Manifest and StoreKit.
- The new command actionProjectStructure() displays the full project structure with colour coding.
- The group has been renamed to "Project", and actionProjectSelect() now selects the JSON configuration persistently.
- A migration for the legacy schema and a safety check against accidentally deleting system directories have been added.
Binary Analysis
- New binary analysis — 8 actions: frameworks, architectures, segment sizes, symbols, load commands, minimum iOS version, entitlements
Developer Info
- New "Developer Info" category — overview, Apple/Xcode/iOS/macOS/Swift releases, Swift Evolution, news, security updates, SwiftUI & frameworks
Security
- In Phase 1 of the security hardening, shellQuote() is now used consistently for all shell calls to prevent injection attacks.
- Access to operationAborted is now thread-safe through NSLock.
- All try? calls have been replaced with do/try/catch so that errors are handled and logged cleanly.
- The availability of external tools is explicitly verified before they are invoked.
- Paths are validated against traversal attacks, and robust fallbacks are in place for non UTF-8 input.
Menu
- New categories integrated into the Split-Pane (incl. App Store & Distribution); hotkey bar and section headers updated
- New: DerivedData browser — interactive browser for subdirectories with size display and targeted deletion
- New: Extended cache browser — "Show all caches" now opens a navigable browser for all Xcode caches
- New: Show build settings —
actionShowBuildSettings()in "Build & Run" - New: "Control" category in the Split-Pane — 12 simulator control commands: push notifications (9 templates), permissions, media, deep link, status bar (mock/reset), location, keychain, app data folder
- New: Show/stop all simulators; clean up unavailable simulators
- Menu: Dependencies moved from standalone category into "Build & Run"
- Debug mode: diagnostic output in Shell.swift now only visible in debug builds
- README files and website updated
Physical Devices
- New: Install apps on physical devices — build, install and launch directly on iPhones and iPads
- DeviceSelector extended: physical devices selectable alongside simulators; last selected device is persisted
- Dashboard displays active device (simulator or physical) uniformly
- Unit/UI tests now also runnable on physical devices; xcresult append works after Ctrl+C
Simulator
isSimulatorBooted()checks simulator state before screenshot, video and dark/light mode; clear error message instead of silent failure- Simulator restart now waits for full boot via
simctl bootstatus -b; Ctrl+C-cancellable - Bugfix: video recording — real error handling instead of
try?; no false "Saved" message when simulator is not running - Bugfix:
timeoutcommand (Linux-only) removed; bootDevice(), restart, reset and stop userunShellLivewith Ctrl+C support
Tests
IDE_TESTING_DEVICE_SUPPORT_DIAGNOSTICS=NOadded to speed flagsprintExecutedCommand()— xcodebuild command displayed in a readable multi-line format before test start- Configuration/signing errors from xcodebuild output now visible in the test report
- Key press required after
operationAbortedcancellation (no more immediate jump back)
UX & Bug Fixes
- Menu colour unified — boldMagenta → boldBlue
- Emoji arguments removed from
printSubSectionTitle() - Bugfix: Dark Mode menu —
isDarkMode()now usesUserDefaults.standardinstead of shell call - Bugfix: macOS app — device selection no longer skipped when switching working directory
Project Manager
- New: Project Manager — initialise, update and delete repositories from JSON configuration (temporary directory, read-only; no commits or pushes)
- Submodule support — branch strategy configurable:
follow_parent,pinnedor explicit branch name
Performance & Stability
- Persistent raw mode: no more "^[[A" echo artefacts with arrow keys
- Signal handlers for SIGINT/SIGTERM/SIGHUP/SIGQUIT + atexit: clean terminal cleanup including cursor restore
- Git branch and AppleInterfaceStyle cached — no fork/shell call per frame
- Categories rebuilt only when actions change — saves lookups per keystroke
- FileBrowser: stable ESC sequence detection via VTIME=1
Hotkeys & Input
- Hotkey bar (digits 1–9) below the Split-Pane: 9 common actions reachable directly by key
[x]as back key; simulator loops with[+]without EnterautoConfirmHotkey: safety prompts auto-confirmed for hotkey actionsactionCancelledflag; "Cancelled" message; ActivitySpinner for cache actions
Build & Test
- Build/test output in Report Navigator style; XcodeBuildFormatter with target in phase headers (▸)
- Split-Pane: left column widened from 15 to 18 characters
- Timeline with 3 states: success, technical error, real errors
- New test menu options: "Compile for tests" and "Run tests (without build)"
- Live SPM package list with status indicators (○/⠋/✓/✗)
Bug Fixes
- Dark Mode rendering issue in main menu fixed
- CocoaPods dependency display corrected
- Parametrised Swift Testing tests now correctly recognised
- Bugfix: "Build" (compile only) now also works for macOS apps
- Bugfix: Duplicate DerivedData directory on macOS fixed
- Bugfix: "Uninstall app & fresh test" — prompt added asking whether to rebuild when no build is present
- Header & UI unified:
printActionHeader()for schema, device, config and language selection - [A] workflow: fewer key presses when switching the working directory
- Build: display where the app was built; launch: display which app was started
- Tests:
printTestSummary()removed; BuildTimeline per simulator - TestPlanResolver: falls back to
selectTestScheme()instead of aborting - SPM "Package.resolved": action header added (17 languages)
printBuiltAppInfo(): frame lines cleaned up; app path on its own line
- Initial release with categories: Clean & Cache, Dependencies, Build & Run, Simulator, Test, Misc, Xcode
- Split-Pane menu with arrow key navigation and persistent settings
- Build speed flags and
-derivedDataPathset everywhere (including resolve) - DerivedData: only the app folder is deleted, never everything
- Build & Run (simulator + macOS), Quick Reset & Build, Full Reset & Build
- Clean & Cache (8 actions); dependencies: SPM, CocoaPods, Carthage — show and resolve
- Tests: unit, UI, all — with parallel testing across multiple simulators
- Simulator: start, stop, reset, screenshot (PNG), video (MP4), dark/light mode
- Misc: tools & versions, file metrics, project metrics
- Working directory selectable via file browser; quit only with uppercase Q
- Fully localised in German and English
- Bugfix: duplicate DerivedData directory on resolve fixed (6 locations)