Невозможно открыть проект... невозможно открыть, потому что файл проекта не может быть проанализирован
Я некоторое время работал над созданием приложения для iPhone. Сегодня, когда моя батарея была низкой, я работал и постоянно сохранял свои исходные файлы, тогда мощность погасла...
Теперь, когда я снова подключил свой компьютер и получил хорошую мощность, я пытаюсь открыть файл проекта, и я получаю сообщение об ошибке:
Невозможно открыть проект
Проект... не может быть открыт, потому что файл проекта не может быть проанализирован.
Есть ли способ узнать, что я могу оправиться от этого? Я попытался использовать старый файл проекта и повторно вставлял его, а затем компилировал. Это дает мне фанки ошибку, которая, вероятно, потому, что он не находит все файлы, которые он хочет...
Я действительно не хочу перестраивать свой проект с нуля, если это возможно.
ИЗМЕНИТЬ
Хорошо, я сделал разницу между этим и немного более старым файлом проекта, который работал, и увидел, что в файле произошел некоторая коррупция. После их слияния (хорошие и новейшие части) он теперь работает.
Отличные точки в SVN. У меня есть один, но есть какая-то забава, пытающаяся синхронизировать XCode с ним. Я определенно проведу с ним больше времени...; -)
![enter image description here]()
Ответы
Ответ 1
Я столкнулся с этой проблемой, и мой старший рассказал мне о решении i.e:
Щелкните правой кнопкой мыши на вашем projectname.xcodeproj
файле здесь projectname
будет именем вашего проекта. Теперь после щелчка правой кнопкой мыши выберите "Показать содержимое пакетов". После этого откройте файл projectname.pbxproj
в текстовом редакторе. Теперь найдите строку, содержащую <<<<<<< .mine
, =======
и >>>>>>> .r
. Например, в моем случае это выглядело так понравилось
<<<<<<< .mine
9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,
=======
52FD7F3D15DCEAEF009E9322 ... in Resources */,
>>>>>>> .r269
Теперь удалите те строки <<<<<<< .mine
, =======
и >>>>>>> .r
, чтобы они выглядели следующим образом:
9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */,
52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */,
Теперь сохраните и откройте проект Xcode и создайте его. Все будет хорошо.
Ответ 2
Ответ Мухаммада был очень полезным (и помог мне привести к моему исправлению). Однако, просто удаляя → → → > ================================================================= было недостаточно для исправления проблемы синтаксического анализа в файле project.pbxproj(для меня) при сохранении изменений в обеих ветвях после слияния.
У меня возник конфликт слияния в разделе PBXGroup (начало которого указано блочным комментарием вроде:/* Начало раздела PBXGroup */) файла project.pbxproj. Однако проблема, с которой я столкнулась, может возникать и в других местах файла project.pbxproj.
Ниже приведено упрощение конфликта слияния, с которым я столкнулся:
<<<<<<< HEAD
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
=======
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
>>>>>>> branch name
sourceTree = "<group>";
};
Когда я удалил маркеры конфликтов слияния, это то, что мне осталось:
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
Как правило, удаление маркеров конфликта слияния устраняет проблему синтаксического анализа в файле project.pbxproj и восстанавливает целостность рабочей области. На этот раз этого не произошло.
Ниже приведено то, что я сделал для решения проблемы:
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
На самом деле мне пришлось добавить 2 строки в конце первой PBXGroup.
Вы можете видеть, что, если бы я выбрал отказ от изменений с главы или слияния, не было бы проблемы с синтаксическим разбором! Однако в моем случае я хотел сохранить обе группы, которые я добавил из каждой ветки, и просто удалить маркеры слияния было недостаточно; Я должен был добавить дополнительные строки в файл project.pbxproj, чтобы поддерживать правильное форматирование.
Итак, если вы столкнулись с проблемами синтаксического анализа после того, как подумали, что решили все конфликты слияния, возможно, вам стоит взглянуть на .pbxproj и убедиться, что проблем с форматированием нет!
Ответ 3
Я получил эту ту же ошибку, потому что Cordova позволит вам создать проект с пробелами в нем, а Xcode не знает, как это сделать.
Ответ 4
У меня была аналогичная проблема.
![Снимок экрана 1]()
Ниже приведены шаги по его устранению:
-
Перейдите в папку, где находится projectName.xcodeproj
.
![Снимок экрана 2]()
-
Щелкните правой кнопкой мыши и выберите "Show Package Contents
". Вы сможете просмотреть список файлов с расширением .pbxproj
.
![Скриншот 3]()
-
Выберите project.pbxproj
. Щелкните правой кнопкой мыши и откройте этот файл, используя "Text Edit
".
![Снимок экрана 4]()
-
Вы сможете увидеть <<<<<< .mine
, ============
и >>>>>>>>>> .r123
. Обычно это конфликты, возникающие при обновлении с помощью SVN.
Удалите их и сохраните файл.
![Снимок экрана 5]()
![Снимок экрана 6]()
-
Теперь вы сможете открыть проект без сообщения об ошибке.
Ответ 5
Визуальный анализ файла проекта Xcode не помог мне найти ошибку после слияния. После поиска syslog нашел такую строку, когда Xcode пытается проанализировать файл:
2/7/14 12:39:12.792 PM Xcode[9949]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 4426. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
После фиксации этого проекта можно открыть ok.
Ответ 6
Проанализируйте синтаксис файла вашего проекта. Проверьте это внутри своего проекта в терминале:
plutil -lint project.pbxproj
Это покажет вам ошибки парсера.
Возможная проблема: Некоторые проекты устанавливают стратегию слияния git union
для файлов проекта. Это работает в большинстве случаев, но в случае сбоя будет молча убивать файл вашего проекта. Эта стратегия определена в файле .gitattributes
в вашем хранилище.
Ответ 7
Недавно я столкнулся с той же проблемой при попытке объединить мою ветку с удаленной веткой. Однако ни одно из вышеперечисленных решений не казалось подходящим для моей проблемы.
Не было конфликтов слияния между файлом project.pbxproj в моей ветке или удаленной веткой. Однако мой файл projectName.xcodeproj будет отказываться открываться по той же причине, что и в заданном вопросе.
Мое решение состояло в том, чтобы просмотреть файл project.pbxproj с помощью текстового редактора и выяснить, есть ли какие-либо нарушения в синтаксисе файла (например, для дополнительной фигурной скобки). Я ускорил этот процесс, сосредоточившись на строках, которые были вставлены или удалены в старом файле по сравнению с объединенным файлом. При ближайшем рассмотрении я обнаружил, что причиной моей проблемы было повторение следующей строки:
xxxxxxxxxxxxx /* [CP] Check Pods Manifest.lock */ = {
в моем объединенном файле. Это привело к закрытой фигурной скобке и, как следствие, к неверному синтаксису pbxproj. Удаление вышеуказанной строки устранило мою проблему.
Ответ 8
Я столкнулся с одной и той же проблемой. Я удалил сгенерированные строки git, как всегда, но Xcode все же отказался открыть файл .xcodeproj. Но все было правильно, отсутствовали скобки и т.д. Наконец, я попытался выйти из Xcode и открыть проект, когда Xcode был закрыт.. тогда он сработал. Надеюсь, это поможет кому-то.
EDIT:
для разрешения конфликтов в вашем файле .xcodeproj вы можете использовать этот удобный script:
- Создать пустой .sh файл в каталоге проекта (например, resol_conflicts.sh)
-
Вот script:
projectfile = find -d . -name 'project.pbxproj'
ProjectDir = echo *.xcodeproj
projectfile = "$ {} ProjectDir/project.pbxproj"
временный файл = "$ {} 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
Ответ 9
Отмените project.pbxproj
svn revert --filename -
Ответ 10
Похоже, вам нужно будет создать новый проект в Xcode, зайти в старый каталог и перетащить все исходные файлы, nibs и ресурсы в боковую панель файлов Xcode в новом проекте. Это не должно занимать больше нескольких минут, если только вы действительно не много работали с настройками или целями пользовательской сборки. Либо это, либо вернитесь к последней регистрации в исходном элементе управления и вручную добавьте файлы кодов, которые изменились между ними время от времени.
Ответ 11
И как только вы снова начнете работать, вам нужно изучить что-то вроде subversion или mercurial для резервного копирования и контроля версий. Помните, что электроны не всегда идут туда, где они должны, чтобы их можно было делать заранее и часто!
Ответ 12
измените текущую папку проекта nam и модуль проверки того же проекта. Затем добавьте текущие изменения файла.
Ответ 13
Просто проверьте файл project.pbproject и выполните разницу с рабочей версией файла проекта.
Часто это происходит, когда у вас возникают конфликты с системой контроля версий, например, здесь: Пользовательский файл не может быть проанализирован в подрывной деятельности в MAC iphone SDK
Ответ 14
Попробуйте найти HEAD и _HEAD между строками и удалите эти слова в project.pbxproj.
Перед этим сделайте резервную копию этого файла.
Ответ 15
Перейти на PhoneGapTest → платформа
Затем удалите папку ios
после этого перейдите к терминалу
затем введите:
sudo phonegap build ios
после этого вы можете запустить проект
Ответ 16
Вернувшись, вы можете отменить вытащенный код.
Если вы хотите отменить этот запрос, просто поместите эту команду в путь проекта
-> git merge --abort
Ответ 17
Шаги, которым нужно следовать: -
1. Перейдите в папку, где находится ваш projectName.xcodeproj
2. Щелкните правой кнопкой мыши и выберите "Показать содержимое пакета". Вы сможете увидеть список файлов с расширением .pbxproj.
3. Выберите проект .pbxproj. Щелкните правой кнопкой мыши и откройте этот файл, используя "Редактирование текста".
4.Вы сможете увидеть & lt; & lt; & lt; & lt; & lt;, ============ и >>>>>>>>>>. Обычно это конфликты, возникающие при обновлении с Sourcetree/SVN/GITLAB. Удалите их и сохраните файл.
5. Теперь вы сможете открыть проект без каких-либо сообщений об ошибках.
Ответ 18
Это связано с тем, что имена проектов не предполагают наличия пробелов между ними
Ответ 19
subversion будет коррумпировать файл моего проекта после svn up почти еженедельно. Я пытаюсь понять, почему это происходит прямо сейчас, и наткнулся на эту проблему.