iPhone Dev - Насколько важен Project.pbxproj? - PullRequest
17 голосов
/ 09 мая 2011

Что содержит этот файл и насколько важно сохранить его «правильным»?

Я видел, как люди пишут сценарии , чтобы просто объединить любое изменение, связанное с ним, и я слышал, другие каждый раз сливали его вручную.

Как правильно и почему?

Ответы [ 2 ]

25 голосов
/ 09 мая 2011

project.pbxproj содержит все метаданные о вашем проекте, которые Xcode использует для его создания; настройки, ссылки на файлы, конфигурация, целевые платформы и т. д. *

т.е. это критически важно.

Там действительно нет хорошего ответа на это. Как правило, команды избегают конфликтов, ограничивая редактирование проекта одним членом команды одновременно.

Команда Xcode приложила немало усилий, чтобы сделать этот файл удобным для слияния. Управляя несколькими крупными проектами через svn, я обнаружил, что слияние происходит автоматически и безболезненно.

Пока их нет. А когда это не так, отмените изменения, объедините изменения вручную (т.е. внесите изменения в конфликтующий проект) и продолжайте.

3 голосов
/ 01 сентября 2014

Попробуйте мой скрипт xUnique . Что он делает:

  1. конвертировать project.pbxproj в формат JSON
  2. Выполните итерацию всех objects в JSON, присвойте каждому UUID абсолютный путь и создайте новый UUID, используя шестнадцатеричный дайджест пути MD5
    • Все элементы в этом объекте json фактически связаны как дерево
    • Мы даем атрибут пути каждому узлу дерева, используя его уникальный атрибут; этот путь является абсолютным путем к корневому узлу,
    • Применение шестнадцатеричного дайджеста MD5 к пути для узла
  3. Заменить все старые UUID на шестнадцатеричный дайджест MD5, а также удалить неиспользуемые UUID, которых нет в текущем дереве узлов, и UUID в неправильном формате
  4. Сортировка файла проекта с включением children, files, PBXFileReference и PBXBuildFile списка и удаление всех дублированных записей в этих списках.
    • см. sort_pbxproj метод в xUnique.py, если вы хотите узнать реализацию;
    • Он портирован с моего модифицированного sort-Xcode-project-file, с некоторыми различиями в порядке PBXFileReference и PBXBuildFile
  5. С различными опциями , вы можете использовать xUnique с большей гибкостью
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...