Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Große Änderung in Apples Programmierumgebung: Xcode 27.2 bringt neues Projektformat mit

Viele Programmierumgebungen verwenden Projektdateien, um Informationen und Dateireferenzen für ein Projekt zu speichern. Apples kostenfreie Programmierumgebung Xcode verwendet aktuell ein Bundle mit der Endung ".xcodeproj", in welchem sich einige Dateien und Ordner wiederfinden. Eine darin, nämlich "project.pbxproj", enthält die wichtigsten Daten zum Projekt. Die Endung gibt einen Hinweis auf die Herkunft des Formates: "pb" steht für "Project Builder" – und hier handelt es sich um den Vorgänger von Xcode, entstanden in der NeXT-Ära.


Für die "pbxproj"-Datei kommt heute immer noch das aus NeXTStep/OpenStep-Tagen bekannte NeXTStep-plist-Format zur Sicherung der Daten zum Einsatz.

Zwei Nachteile
Da das Format mit einer Menge von internen Referenzen anhand von Nummern arbeitet (um beispielsweise Beziehungen zwischen Dateien, Targets, Ordnern usw. herzustellen), treten für Programmierer in Teams oftmals Probleme auf: Ändern zwei Entwickler gleichzeitig die Projektdatei, müssen diese Änderungen durch eine Versionskontrolle zusammengeführt werden. Da Informationen zu Dateien über die gesamte Projektdatei verstreut sind, ist das Zusammenführen oftmals problematisch und fehleranfällig.

Der zweite Nachteil betrifft KI-Programmier-Agenten, denn diese tun sich oft schwer mit der Veränderung großer Projektdateien mit vielen internen Beziehungen. Oftmals passieren hier Fehler – und eine Kontrolle durch den Entwickler ist schwer möglich.

JSON als Projektformat
Mit Xcode 27.2, welches als erste Vorabversion zum Download über die Apple Developer Connection bereitsteht, führt Apple eine wichtige Änderung ein: Optional steht nun ein neues Projektformat zur Nutzung bereit, welches auf dem bekannten Datenformat JSON basiert. Projekte im neuen Format verwenden die Endung ".xcproj". Wer in Xcode 27.2 auf das neue Format umsteigen will, findet die entsprechende Option im File Inspector, wenn man das Projekt auswählt.

Bibliothek zum Öffnen
Will man eine Projektdatei aus Code heraus modifizieren oder neu erstellen, bietet Apple nun auch eine Programmierbibliothek mit dem Namen "xcode-project-format" für Swift an, welche zum kostenfreien Download auf Github bereitsteht.

Kommentare

milk
milk18.09.26 10:04
Eine Änderung des Projektformats bedeutet, dass ALLE etablierten third party tools von heute auf morgen nicht mehr funktionieren. ALLE bestehenden Automatisierungsworkflows müssen also dann mit KI neu erstellt werden und laufen von da an nicht mehr problemlos offline.

Ich kann mir kaum vorstellen, dass sich das jemand gewünscht hat.
-7
Mendel Kucharzeck
Mendel Kucharzeck18.09.26 10:12
milk
Welche etablierten third-party-tools manipulieren denn direkt die Xcode-Projektdatei?
+4
Dirk!18.09.26 10:24
milk
Eine Änderung des Projektformats bedeutet, dass ALLE etablierten third party tools von heute auf morgen nicht mehr funktionieren.

Noch kann man laut Apple weiterhin zwischen den Formaten wählen.
+6
milk
milk18.09.26 11:40
Mendel Kucharzeck
milk
Welche etablierten third-party-tools manipulieren denn direkt die Xcode-Projektdatei?
Von Manipulieren habe ich nichts geschrieben, ich dachte eher an das Auslesen. Denn auch daran scheitern bestehende Tools nach der Veränderung des Projektformates.

Aber ich kann dir deine Frage trotzdem beantworten.
Wir verwenden für unsere Projekte XcodeGen . Damit erzeugen wir das Projectfile aus einer Konfigdatei, wodurch auomatisiertes Bauen und Testen von unterschiedlichsten Konfigurationen möglich wird, ohne dass manuell Dutzende von Targets konfiguriert und aktuell gehalten werden müssen. Darüber hinaus verhindert es effizient die unausweichlichen Mergekonflikte, die ab einer bestimmten Teamgröße im monolithischen Projectfile entstehen.

Für Projekte in der Größe der Synium-Apps, an denen wenige Entwickler arbeiten, ist das kein notwendiges Tool, von daher wundert mich auch nicht, dass du es nicht kennst. Ich habe hier aber eine dreistellige Anzahl Entwickler, die parallel am Projekt arbeiten, da entstehen von alleine ganz andere Anforderungen an die Entwicklungstools.

Vielleicht erklärt das ein wenig, warum mir ein stabiles Projektformat so wichtig ist. Sicherlich werden viele Tools mit der Zeit aktualisiert werden, und wenn nicht, dann machen wir das zur Not auch selbst, aber die Menge an Zeit und Geld, die das benötigt, würde ich bevorzugt in neue Features investieren.
+1
sudoRinger
sudoRinger18.09.26 20:21
milk
Ich kann mir kaum vorstellen, dass sich das jemand gewünscht hat.
Ein paar solcher Reaktionen
Eigentlich sollte das neue Format besonders in deinem Umfeld eine Hilfe sein. Apple preist es als "merge-friendly".
+1
milk
milk18.09.26 21:36
sudoRinger
Eigentlich sollte das neue Format besonders in deinem Umfeld eine Hilfe sein. Apple preist es als "merge-friendly".
Das ist es sicherlich auch. also zumindest merge-friendlier als vorher.
Und für die meisten Leute hört da ja auch schon der Schmerz auf.

Wenn du aber ein Sammelsurium aus Build-Pipelines und Test-Environments hast, um die oben von mir beschriebenen Fälle abzudecken, dann brauchst du halt stabile Tools außenrum, und da wird es jetzt erstmal knallen.

Anhand der vielen Daumen-runter an meinem ersten Beitrag kann ich aber ungefähr ablesen, dass das scheinbar weniger Leute betrifft als ich vermutet hatte. Beneidenswert.
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.