In einem XCode-Projekt habe ich die Datei xcodeproject / project.pbxproj geändert, aber nutzlose Informationen für mich, sie zum Kompilieren.
Sollte ich diese Datei und die Datei xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate ignorieren?
Antworten:
Update im Lichte von Swift Package Manager: Wenn Sie ein Projekt als Swift-Paket erstellen, sollten Sie diese Datei auf jeden Fall ignorieren, da sie mit dem Dateisystem als Quelle der Wahrheit generiert werden kann. Sie können dies mit dem folgenden Befehl tun:
Für Nicht-SwiftPM-Antworten siehe unten.
Diese Datei enthält die Liste aller Dateien im Projekt, die Einstellungen der Ziele und welche Dateien zu welchen Zielen gehören. Es ist wahrscheinlich die fleischigste Datei im Projektpaket. Sie sollten diese Datei nicht ignorieren. Dafür gibt es nur wenige Punkte:
quelle
Dies ist die einzige Datei, die Sie in Ihren Repos aus dem xcodeproj-Bundle haben möchten. Diese Datei enthält alle Informationen für Zieldateien und Build-Einstellungen.
quelle
Wenn Ihre Build-Einstellungen die Codesignatur enthalten, müssen Sie Ihre Codesignaturentität nach jedem "Git Pull" erneut eingeben, wenn ein anderes Teammitglied sie geändert hat. Es scheint mir, dass diese Informationen in den Benutzereinstellungen sein sollten, nicht in der globalen pbxproj-Datei.
quelle
Wenn Sie project.pbxproj ausschließen, schlagen Jenkins-Builds fehl. Dies ist also wichtig, wenn Sie Jenkins verwenden.
quelle
Ich habe festgestellt, dass ich auch die xcworkspace-Datei (en) beibehalten muss. Wenn nicht, ist das Projekt mit einem Teilprojekt kaputt gegangen.
quelle
Sie können Xcodegen verwenden, um ein pbxproj aus einer YAML-Projektspezifikationsdatei zu generieren. Anschließend können Sie pbxproj in git ignorieren und jedes Mal generieren, wenn Sie es benötigen.
Ich habe Xcodegen bereits für ein zweites Projekt verwendet, das eine modulare Architektur hat (viele pbxprojs), und mehr als 8 Entwickler arbeiten daran.
https://github.com/yonaskolb/XcodeGen
Ich hoffe es hilft.
quelle
Hier ist mein General
.gitignore
für mein Xcode-Projekt.quelle