w projekcie XCode, często mam zmieniony plik xcodeproject / project.pbxproj, ale bezużyteczne informacje dla mnie, to do kompilacji.
Czy powinienem git zignorować ten plik i plik xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate?
Odpowiedzi:
Aktualizacja w świetle Swift Package Manager: Jeśli budujesz projekt jako pakiet Swift - zdecydowanie powinieneś zignorować ten plik, ponieważ można go wygenerować przy użyciu systemu plików jako źródła prawdy. Możesz to zrobić za pomocą następującego polecenia:
Aby uzyskać odpowiedź inną niż SwiftPM - patrz poniżej.
Ten plik zawiera listę wszystkich plików w projekcie, ustawienia celów i które pliki należą do których celów. To prawdopodobnie najbardziej mięsisty plik w pakiecie projektu. Nie powinieneś ignorować tego pliku. Jest na to kilka punktów:
źródło
To jedyny plik, który chcesz umieścić w repozytoriach z pakietu xcodeproj. Ten plik zawiera wszystkie informacje o plikach docelowych i ustawieniach kompilacji.
źródło
Niestety, jeśli ustawienia kompilacji obejmują podpisywanie kodu, musisz ponownie wprowadzać podmiot podpisujący kod po każdym „git pull”, jeśli zmienił go inny członek zespołu. Wydaje mi się, że te informacje powinny znajdować się w ustawieniach użytkownika, a nie w globalnym pliku pbxproj.
źródło
Jeśli wykluczysz project.pbxproj, kompilacja Jenkinsa zakończy się niepowodzeniem. Jest to więc ważne, jeśli używasz Jenkins.
źródło
Odkryłem, że muszę również zachować plik (i) xcworkspace. Jeśli nie, projekt z podprojektem się zepsuł.
źródło
Możesz użyć Xcodegen do wygenerowania pbxproj z pliku specyfikacji projektu YAML, a następnie możesz zignorować pbxproj w git i wygenerować je za każdym razem, gdy potrzebujesz.
Użyłem już Xcodegen w drugim projekcie, który ma architekturę modułową (wiele pbxprojs) i pracuje nad nim ponad 8 programistów.
https://github.com/yonaskolb/XcodeGen
Mam nadzieję, że to pomoże.
źródło
Oto mój generał
.gitignore
dla mojego projektu Xcode.źródło