Подтвердить что ты не робот

Невозможно открыть проект... невозможно открыть, потому что файл проекта не может быть проанализирован

Я некоторое время работал над созданием приложения для iPhone. Сегодня, когда моя батарея была низкой, я работал и постоянно сохранял свои исходные файлы, тогда мощность погасла...

Теперь, когда я снова подключил свой компьютер и получил хорошую мощность, я пытаюсь открыть файл проекта, и я получаю сообщение об ошибке:

Невозможно открыть проект

Проект... не может быть открыт, потому что файл проекта не может быть проанализирован.

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

Я действительно не хочу перестраивать свой проект с нуля, если это возможно.


ИЗМЕНИТЬ

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

Отличные точки в SVN. У меня есть один, но есть какая-то забава, пытающаяся синхронизировать XCode с ним. Я определенно проведу с ним больше времени...; -)

enter image description here

4b9b3361

Ответ 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 почти еженедельно. Я пытаюсь понять, почему это происходит прямо сейчас, и наткнулся на эту проблему.