Должен ли я git игнорировать файл xcodeproject/project.pbxproj?

в проекте XCode, я получил файл xcodeproject/project.pbxproj, но бесполезную информацию для меня, он для компиляции.

Должен ли я git игнорировать этот файл и файл xcodeproject/projectxworkspace/username.xcuserdata/UserInterfaceState.xcuserstate?

Ответ 1

Обновление в свете диспетчера пакетов Swift: если вы создаете проект как пакет Swift - вы должны обязательно игнорировать этот файл, поскольку он может быть создан с использованием файловой системы в качестве источника правды. Вы можете сделать это с помощью следующей команды:

$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj

Для ответа не SwiftPM - см. Ниже.

Этот файл содержит список всех файлов в проекте, настройки целей и какие файлы принадлежат к каким целям. Это, пожалуй, самый простой файл в комплекте проекта. Вы не должны игнорировать этот файл. Есть несколько моментов для этого:

  1. Вы можете не захотеть работать над этим проектом в одиночку или;
  2. Вы планируете работать над проектом с разных машин;
  3. Вы хотите поделиться своей кодовой базой с другими;

Ответ 2

Это единственный файл, который вы хотите получить в своих репозиториях из пакета xcodeproj. Этот файл содержит всю информацию для файлов целей и настроек сборки.

Ответ 3

Если вы исключите project.pbxproj, сборки Jenkins не удастся. Поэтому это важно, если вы используете Jenkins.

Ответ 4

К сожалению, если ваши настройки сборки включают подписание кода, вы должны повторно ввести свой объект подписи кода после каждого "git pull", если другой член команды изменил его. Мне кажется, эта информация должна быть в пользовательских настройках, а не в глобальном файле pbxproj.

Ответ 5

Я обнаружил, что мне также необходимо сохранить файлы xcworkspace. Если этого не произошло, проект с подпроектом сломался.

Ответ 6

Вы можете использовать Xcodegen для генерации pbxproj из файла спецификации проекта YAML, тогда вы можете игнорировать pbxproj в git и генерировать их каждый раз, когда вам нужно.

Я уже использовал Xcodegen для второго проекта, который имеет модульную архитектуру (много pbxprojs), и над ним работают более 8 разработчиков.

https://github.com/yonaskolb/XcodeGen

Надеюсь, поможет.