Некоторое время я работал над созданием приложения для iPhone. Сегодня, когда у меня разрядился аккумулятор, я работал и постоянно сохранял исходные файлы, потом отключилось электричество ...
Теперь, когда я снова подключил свой компьютер и он набирает достаточную мощность, я пытаюсь открыть файл проекта и получаю сообщение об ошибке:
Невозможно открыть проект
Проект ... не может быть открыт, потому что файл проекта не может быть проанализирован.
Есть ли способ, которым люди знают, что я могу оправиться от этого? Я попытался использовать старый файл проекта и снова вставить его, а затем скомпилировать. Это дает мне фанковую ошибку, которая, вероятно, связана с тем, что он не находит все нужные файлы ...
Я действительно не хочу перестраивать свой проект с нуля, если это возможно.
РЕДАКТИРОВАТЬ
Хорошо, я провел разницу между этим и немного более старым файлом проекта, который работал, и увидел, что в файле есть некоторые повреждения. После их объединения (хорошей и новейшей частей) он теперь работает.
Замечательные моменты о SVN. У меня есть один, но были некоторые забавы, пытающиеся синхронизировать с ним XCode. Я определенно проведу с ним больше времени ... ;-)
Ответ Мухаммеда был очень полезным (и помог мне исправить). Однако простого удаления >>>>>>> ======= <<<<<<< было недостаточно для устранения проблемы синтаксического анализа в project.pbxproj (для меня) при сохранении изменений из обеих веток после слияния.
У меня возник конфликт слияния в разделе PBXGroup (начало которого обозначено таким комментарием блока: / * Begin PBXGroup section * /) файла project.pbxproj. Однако проблема, с которой я столкнулся, может возникнуть и в других местах файла project.pbxproj.
Ниже приведено упрощение конфликта слияния, с которым я столкнулся:
Когда я удалил маркеры конфликта слияния, вот что у меня осталось:
Обычно удаление маркеров конфликта слияния устраняет проблему синтаксического анализа в файле project.pbxproj и восстанавливает целостность рабочей области. На этот раз этого не произошло.
Вот что я сделал для решения проблемы:
На самом деле мне пришлось добавить 2 строки в конце первой PBXGroup.
Вы можете видеть, что, если бы я решил отменить изменения либо из Head, либо из ветки слияния, не было бы проблемы с синтаксическим анализом! Однако в моем случае я хотел сохранить обе группы, которые я добавил из каждой ветки, и простого удаления маркеров слияния было недостаточно; Мне пришлось добавить дополнительные строки в файл project.pbxproj, чтобы сохранить правильное форматирование.
Итак, если у вас возникли проблемы с синтаксическим анализом после того, как вы подумали, что разрешили все конфликты слияния, вы можете поближе взглянуть на .pbxproj и убедиться, что нет никаких проблем с форматированием!
источник
Я получил ту же самую ошибку, потому что Кордова позволит вам создать проект с пробелами в нем, а Xcode не знает, что делать.
источник
У меня была аналогичная проблема.
Ниже приведены шаги по ее устранению:
Перейдите в папку, в которой находится ваш
projectName.xcodeproj
.Щелкните правой кнопкой мыши и выберите '
Show Package Contents
'. Вы сможете увидеть список файлов с.pbxproj
расширением.Выбрать
project.pbxproj
. Щелкните правой кнопкой мыши и откройте этот файл с помощью 'Text Edit
'.Вы сможете увидеть
<<<<<< .mine
,============
и>>>>>>>>>> .r123
. Как правило, это конфликты, возникающие при обновлении через SVN. Удалите их и сохраните файл.Теперь вы сможете открыть проект без сообщений об ошибке .
источник
Визуальный анализ файла проекта Xcode не помог мне обнаружить ошибку после слияния. Посмотрев в системный журнал, обнаружил такую строку, когда Xcode пытался проанализировать файл:
После исправления этот проект можно открыть нормально.
источник
Проанализируйте синтаксис файла вашего проекта. Проверьте это внутри своего проекта в терминале:
plutil -lint project.pbxproj
Это покажет вам ошибки парсера.
Возможная проблема : некоторые проекты устанавливают стратегию слияния git
union
для файлов проекта. Это работает в большинстве случаев, но незаметно уничтожит файл вашего проекта в случае сбоя. Эта стратегия определена в.gitattributes
файле в вашем репозитории.источник
Недавно я столкнулся с той же проблемой при попытке объединить мою ветку с удаленной веткой. Однако ни одно из вышеперечисленных решений не казалось подходящим для моей проблемы.
Не было конфликтов слияния между файлом project.pbxproj в моей или удаленной ветке. Однако мой файл projectName.xcodeproj отказывался открываться по той же причине, что и в заданном вопросе.
Мое решение заключалось в том, чтобы просмотреть project.pbxproj с помощью текстового редактора и выяснить, есть ли какие-либо нарушения в синтаксисе файла (например, лишняя фигурная скобка). Я ускорил этот процесс, сосредоточив внимание на строках, которые были вставлены или удалены в старом файле, по сравнению с объединенным файлом. При ближайшем рассмотрении я обнаружил, что причиной моей проблемы было повторение следующей строки:
в моем объединенном файле. Это привело к незакрытой фигурной скобке и, как следствие, неправильному синтаксису pbxproj. Удаление указанной выше строки устранило мою проблему.
источник
Я столкнулся с той же проблемой. Я удалил сгенерированные строки с помощью git, как всегда, но Xcode по-прежнему отказывался открывать файл .xcodeproj. Но все было правильно, скобок не было и т. Д. Наконец, я попытался выйти из Xcode и открыть проект, когда Xcode был закрыт. ... и все заработало. Я надеюсь, что это поможет кому-то.
РЕДАКТИРОВАТЬ:
для разрешения конфликтов в вашем файле .xcodeproj вы можете использовать этот удобный скрипт:
Вот сценарий:
файл проекта =
find -d . -name 'project.pbxproj'
каталог проекта =echo *.xcodeproj
projectfile = "$ {projectdir} /project.pbxproj" tempfile = "$ {projectdir} /project.pbxproj.out" savefile = "$ {projectdir} /project.pbxproj.mergesave"cat $ projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^ >>>>>>>"> $ tempfile mv $ tempfile $ projectfile
Запустите его из терминала с помощью команды sh: sh resolve_conflicts.sh
источник
resolve_conflicts.sh: line 1: -d: command not found resolve_conflicts.sh: line 3: $tempfile: ambiguous redirect
Восстановите project.pbxproj
svn revert --filename--
источник
Шаги, которые необходимо выполнить: - 1. Перейдите в папку, где находится ваш projectName.xcodeproj 2. Щелкните правой кнопкой мыши и выберите «Показать содержимое пакета». Вы сможете увидеть список файлов с расширением .pbxproj. 3. Выберите project.pbxproj. Щелкните правой кнопкой мыши и откройте этот файл с помощью «Редактировать текст». 4. Вы сможете увидеть <<<<<<, ============ и >>>>>>>>>>. Как правило, это конфликты, возникающие при обновлении с Sourcetree / SVN / GITLAB. Удалите их и сохраните файл. 5.Теперь вы сможете открыть проект без сообщений об ошибке.
источник
Похоже, вам придется создать новый проект в Xcode, перейти в старый каталог и перетащить все исходные файлы, перья и ресурсы на боковую панель файлов Xcode в новом проекте. Это не должно занять больше нескольких минут, если вы действительно не много работали с пользовательскими настройками или целями сборки. Либо так, либо вернитесь к последней регистрации в исходном элементе управления и вручную добавьте любые файлы кода, которые изменились с этого момента.
источник
И как только вы снова начнете работать, вам следует подумать об использовании чего-то вроде subversion или mercurial для резервного копирования и контроля версий. Помните, что электроны не всегда уходят туда, куда должны, - быстро и часто копируют!
источник
измените название папки текущего проекта и модуль проверки на тот же проект. затем добавьте изменения в текущий файл.
источник
Просто проверьте файл project.pbproject и сравните его с рабочей версией файла проекта.
Часто это происходит, когда у вас есть конфликты с системой контроля версий, как указано здесь: Пользовательский файл не может быть проанализирован в Subversion в MAC iphone SDK
источник
Попробуйте найти между строками HEAD и _HEAD и удалите эти слова в project.pbxproj. Сделайте резервную копию этого файла перед этим ..
источник
Перейти к PhoneGapTest >> platform Затем удалите папку ios, после этого перейдите в терминал и введите: sudo phonegap build ios после этого вы можете запустить проект
источник
Вернувшись, вы можете отменить извлеченный код.
Если вы хотите отменить этот запрос на перенос, просто поместите эту команду в путь к проекту.
->
git merge --abort
источник
В случае, если вы не нашли в Text === или <<< или >>>>, как это было для меня, проблема была действительно простой и интересной ... Я меняю имя приложения в Xcode, но не меняю его в UnityProjectSettings перед сборкой - вот в чем проблема ...
источник
Если вы когда-нибудь сливаетесь и по-прежнему получаете проблемы, которые не знают, что они из себя представляют, я имею в виду не очевидные признаки разницы
Затем вы можете проанализировать файлы своего проекта с помощью https://github.com/Karumi/Kin , установить и использовать
В нем есть дополнительные ошибки, которые не позволяют легче понять и решить открытый проект (хеши, группы и т. Д.).
И, кстати, это также может быть полезно, хотя я не использовал его, попробуйте сравнить 2 версии файлов вашего проекта https://github.com/bloomberg/xcdiff, чтобы вы действительно узнали, что происходит.
источник
subversion повредит мой файл проекта после svn-up почти еженедельно. Я пытаюсь понять, почему он это делает прямо сейчас, и столкнулся с этой проблемой.
источник
Это связано с тем, что в названиях проектов не должно быть пробелов между ними.
источник