Aufgaben an den Knoten übergeben
Vier Arbeitsweisen, ein exklusiver Knoten
Die folgenden Workflows sind Beispiele für die praktische Umsetzung, keine Kundenberichte oder Benchmark-Versprechen. Die Befehle zeigen mögliche Einstiegspunkte. Vor dem Start müssen Projektabhängigkeiten, Signaturmaterialien und passende Softwarelizenzen bereitstehen.
Solo-Entwicklung
Tagsüber SwiftUI, nachts Builds auf dem Mac in der Cloud
Nach einem Commit ruft launchd oder ein Runner den gewünschten Commit ab, installiert Abhängigkeiten, führt Tests aus und erstellt anschließend Archiv und Export. Mit Fastlane nach TestFlight hochladen, am nächsten Tag Build-Logs und Testergebnisse prüfen und dann über die Verteilung entscheiden.
Scheme, Konfiguration und Exportparameter festlegen und Signaturmaterial im Keychain des Knotens hinterlegen. Die Signatur zuerst in der grafischen Oberfläche testen und erst danach unbeaufsichtigte Jobs einrichten.
xcodebuild -scheme MyApp archive -archivePath build/MyApp.xcarchive
CI-Teams
PR-Merge löst Builds aus, das Team verwaltet die Queue
Einen selbst gehosteten GitLab- oder GitHub-Runner auf dem Knoten registrieren und Jobs nach Projekt, Toolchain und Umgebungs-Tags verteilen. Nach erfolgreicher Prüfung eines Merge Requests Fastlane gym ausführen, signierte Artefakte für die Haupt-App und Extensions exportieren und Logs für erneute Läufe bei Fehlern aufbewahren.
Der exklusive Knoten verhindert Ressourcenkonflikte mit anderen Kunden, nicht aber innerhalb der eigenen Job-Queue. Die Parallelität des Runners sinnvoll begrenzen und Arbeitsverzeichnisse trennen. Zertifikatswechsel, Xcode-Upgrades und Cache-Bereinigung in versionierte Skripte aufnehmen.
fastlane gym --scheme MyApp --export_method app-store
KI-Experimente
Kleine Modelle mit 64GB Unified Memory feinabstimmen
Ein Modell mit MLX laden, Daten vorbereiten und per LoRA feinabstimmen. Anschließend je nach Modellunterstützung mit coremltools in Core ML konvertieren. Das Ergebnis ins iOS-Projekt übernehmen und Operator-Kompatibilität, Inferenzspeicher und Ausgabequalität prüfen.
Modell, Trainingsstatus und macOS teilen sich den Unified Memory – 64GB stehen also nicht vollständig dem Modell zur Verfügung. Zuerst mit kleinen Batches den Speicherbedarf prüfen und danach die Kontextlänge erhöhen. Training und Builds zeitlich trennen, statt beides standardmäßig gleichzeitig laufen zu lassen.
python -m mlx_lm.lora --model ./base --train --data ./data
Audio- und Video-Workflows
Renderjobs per Remote-Desktop planen und nachts stapelweise transkodieren
Über VNC die macOS-Oberfläche öffnen und Renderjobs in einer lizenzierten Logic- oder Final-Cut-Umgebung planen. Für Aufgaben per Kommandozeile VideoToolbox zum Codieren nutzen und fertige Videos anschließend per SSH oder rsync abrufen.
Zuerst ein repräsentatives Sample hochladen und Plugins, Schriften, Codecs sowie Ausgabeparameter prüfen. Die Übertragung großer Dateien hängt von der lokalen Bandbreite und dem Netzwerkpfad ab. Größere Uploads und Renderjobs am besten zeitlich trennen.
ffmpeg -i in.mov -c:v hevc_videotoolbox -b:v 12M out.mp4