iOS — конфликты слияния git после добавления кокосов в проект

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

Когда я открываю Xcode, файл рабочей области содержит ошибку и говорит:

"Workspace Integrity - Couldn't load project"

Как я могу решить этот конфликт слияния?


person user3344977    schedule 20.10.2014    source источник


Ответы (5)


Когда git сталкивается с конфликтами слияния, он добавляет строки текста в конфликтующие файлы. Это комментарии типа:

<<<<< HEAD
  ... your code from HEAD...
=========
  ... your code from the merge branch...
>>>>>> my_merged_branch_name

Эти строки отмечают, где Git нуждается в помощи. Когда Xcode сталкивается с одной из этих строк в файле .pbxproj, он не может открыть файл и выдает ошибку Workspace Inconsistency.

Если вы посмотрите на сообщения, которые вы получили от git, они показывают, какие файлы имели конфликты слияния.

Решить проблему:

  1. Откройте каждый из этих файлов с помощью простого текстового редактора (я старый школьный, поэтому я использую vi. Nano также будет работать. Просто убедитесь, что вы используете редактор кода, а не текстовый процессор, такой как TextEdit, который попытается изменить ваши окончания строки, и т.д. )

  2. Разрешите конфликты, удалив строки комментариев, добавленные git, и решив, какие строки кода оставить.

  3. Затем сообщите git, что вы разрешили конфликты: git add .

  4. и продолжить слияние.

Теперь Xcode сможет открыть ваш проект.

person Suz    schedule 10.12.2014
comment
Как мы можем просмотреть сообщения, которые мы получили от git? Вы так сказали, но я не могу найти. Рад, если вы можете помочь. - person Kutay Demireren; 12.07.2015
comment
Ах. Хм. Я использую Git из командной строки, поэтому он выводит сообщение при возникновении конфликта слияния. Однако текст >>>> и ===== не являются сообщениями. Git фактически добавляет эти строки в ваш код. Чтобы устранить конфликт, вы должны удалить эти строки (и при необходимости изменить свой код). Когда эти строки добавляются в файл .pbxproj, Xcode выдает ошибку в заголовке вопроса. Просто откройте файл .pbxproj и найдите ››››. - person Suz; 13.07.2015
comment
Да, хорошо, я имею в виду, я искал список конфликтующих файлов. Я явно указал каждый свой файл, потому что не смог получить этот список, включая pbxproj. В любом случае, спасибо, у вас получилось - person Kutay Demireren; 14.07.2015

Вот мои 2 цента.

Иногда даже после удаления всех >>>> и ===== вы все равно получаете те же ошибки.

  • Очистить проект,
  • Запустите pod install
  • Построить проект

Это должно решить оставшиеся проблемы.

person Mr H    schedule 06.10.2015

Возможно, ваш проект.pbxproj уничтожен. если вы изменили свой project.pbxproj, вам следует внимательно проверить свой project.pbxproj с помощью your.xcodeproj --> показать содержимое пакета --> project.pbxproj

person WDC    schedule 21.12.2016
comment
Я сталкиваюсь с той же проблемой, потому что я удалил еще одну точку с запятой, когда исправил конфликт слияния. - person WDC; 21.12.2016

Еще один способ разрешить конфликты, когда вы не можете получить доступ к файлам рабочей области, - это нажать + + c и увидеть каждый конфликт, который приводит к ошибке "Workspace Integrity - Couldn't load project".

Если вы не уверены, что не так с стручками или Carthage; вы можете щелкнуть правой кнопкой мыши на pod/Carthage и discard changes. Позднее вы сможете обновить эти модули вручную.

person Sanket Ray    schedule 26.07.2019

Скорее всего, у вас проблема с файлом project.pbxproj, который находится внутри вашего ProjectName.xcodeproj (щелкните правой кнопкой мыши, чтобы открыть содержимое пакета).

Вы можете прочитать в github о похожей проблеме, а также есть решение "lint" вы можете попробовать.

Я думаю, что более быстрым решением было бы перемещение HEAD «назад» в git по каждому коммиту, пока ваш файл проекта не заработает, и как только он заработает, переместите коммит HEAD 1 «вперед» и посмотрите изменения в project.pbxproj, вы, вероятно, увидите отсутствующее закрытие/ открывающие скобки или, возможно, отсутствует точка с запятой.

Теперь, когда вы знаете, чего не хватает, перейдите к последней фиксации и вручную исправьте файл project.pbxproj с помощью простого средства просмотра текста.

Удачи.

person OhadM    schedule 25.08.2019