2012-05-28 17 views
7

In Xcode werden die Einstellungen unter Datei> Arbeitsbereichseinstellungen ... für jeden Xcode-Benutzer separat gespeichert. Ich möchte, dass die Arbeitsplatzeinstellungen für alle Benutzer gleich eingestellt werden. Mein Ziel ist es, die erstellten Ziele im selben relativen Verzeichnis zu kopieren.Xcode: Hinzufügen von WorkspaceSettings.xcsettings zur Quellcodeverwaltung

von Standard-Arbeitsbereich-Einstellungen werden in gespeichert:

[workspace] .xcworkspace/xcuserdata/[Benutzername]

.xcuserdatad

Ich mag die Fähigkeit, diese in allen Benutzern gemeinsam machen, so kann ich füge es der Versionskontrolle hinzu.

+2

Ich versuche, dies zu tun zu setzen. Was zum Teufel ist der Sinn eines Arbeitsbereichs, wenn Sie arbeitsbereichsbezogene Einstellungen nicht darin speichern können? – devios1

Antwort

6

Am Ende haben wir ein kleines Bash-Skript zu schreiben, die vier Standard-Schreib ausgeführt Befehle, um die richtigen Einstellungen

scriptPath="$(dirname "$0")" 
cd "$scriptPath" 
fullPath=$(pwd) 
settingsFile="$fullPath"/<project>.xcworkspace/xcuserdata/$USER.xcuserdatad/WorkspaceSettings.xcsettings 

cp -f "$settingsFile" "$settingsFile.plist" 

defaults write "$settingsFile" BuildLocationStyle CustomLocation 
defaults write "$settingsFile" CustomBuildLocationType RelativeToWorkspace 
defaults write "$settingsFile" CustomBuildProductsPath "Build/Products" 
defaults write "$settingsFile" CustomBuildIntermediatesPath "Build/Intermediates" 

cp -f "$settingsFile.plist" "$settingsFile" 
+0

+1, interessante Lösung. Ich denke, es gibt keinen narrensicheren Weg, um sicherzustellen, dass dies passiert, wenn jemand einen neuen Arbeitsplatz einrichtet? – mpontillo

+0

Ich habe diese Idee verwendet, aber würde die folgende Information hinzufügen: * Ich erstellte ein neues "Aggregat" -Ziel mit dem Skript als Build-Phase * Ich änderte die erste Zeile in: 'scriptPath = "$ PROJECT_FILE_PATH"' * Ich habe geändert die 4. Zeile - entferne die Klammern aus dem Projekt * Ich habe die letzte Zeile geändert in: 'cp -f "$ settingsFile.plist" "$ settingsFile" 2> & 1>/dev/null' Jetzt kann ein Bot dies verwenden auch für die Integration. – gamma

Verwandte Themen