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

<p>некоторое время я работал над созданием приложения для iphone. сегодня, когда моя батарея разряжена, я работал и постоянно сохранял свои исходные файлы, а затем отключилось питание ...</p><p>теперь, когда я снова подключил свой компьютер, и он начинает работать, я пытаюсь открыть файл своего проекта и получаю сообщение об ошибке:</p><blockquote> <p>невозможно открыть проект</p> <p>проект ... не может быть открыт, потому что файл проекта не может быть проанализирован.</p> </blockquote><p>есть ли способ, которым люди знают о том, что я могу оправиться от этого? я попытался использовать более старый файл проекта и заново вставить его, а затем компилировать. это дает мне странную ошибку, которая, вероятно, потому, что он не находит все нужные файлы ...</p><p>я действительно не хочу перестраивать свой проект с нуля, если это возможно.</p><hr><h3>правка</h3><p>хорошо, я сделал различие между этим и немного более старым файлом проекта, который работал, и увидел, что в этом файле было некоторое повреждение. после объединения их (хороших и новейших частей) все работает.</p><p>отличная информация о svn. у меня есть один, но была некоторая забавная попытка синхронизировать xcode с этим. я определенно проведу больше времени с ним сейчас; ;-)</p><p><img src="https://i.stack.imgur.com/up53v.png" alt="enter image description here"></p>

<p>я столкнулся с этой проблемой, и мой старший рассказал мне о решении, т.е.</p><p>щелкните правой кнопкой мыши ваш файл <code>projectname.xcodeproj</code> здесь <code>projectname</code> будет названием вашего проекта. теперь после щелчка правой кнопкой мыши выберите <em>показать содержимое пакета</em>. после этого откройте файл <code>projectname.pbxproj</code> в текстовом редакторе. теперь найдите строку, содержащую <code><<<<<<< .mine</code>, <code>=======</code> и <code>>>>>>>> .r</code>. например в моем случае это выглядело так</p><pre><code><<<<<<< .mine 9adaac6a15dcef6a0019aca8 .... in resources */, ======= 52fd7f3d15dceaef009e9322 ... in resources */, >>>>>>> .r269 </code></pre><p>теперь удалите эти строки <code><<<<<<< .mine</code>, <code>=======</code> и <code>>>>>>>> .r</code> так, чтобы это выглядело так</p><pre><code> 9adaac6a15dcef6a0019aca8 /* buypricebtn.png in resources */, 52fd7f3d15dceaef009e9322 /* discussionform.zip in resources */, </code></pre><p>теперь сохраните и откройте свой проект xcode и соберите его. все будет отлично.</p>

<p>ответ мухаммеда был очень полезным (и помог привести к моему исправлению). однако простого удаления >>>>>>> ======= <<<<<<< было недостаточно, чтобы исправить проблему разбора в project.pbxproj (для меня) при сохранении изменений из обеих веток. после слияния.</p><p>у меня возник конфликт при слиянии в разделе pbxgroup (начало которого обозначено блочным комментарием, например:/* начать раздел pbxgroup * /) файла project.pbxproj. однако проблема, с которой я столкнулся, может возникнуть и в других местах файла project.pbxproj.</p><p>ниже приведено упрощение конфликта слияния, с которым я столкнулся:</p><pre><code> <<<<<<< head id = { isa = pbxgroup; children = ( id ); name = "your group name"; ======= id = { isa = pbxgroup; children = ( id ); name = "your group name"; >>>>>>> branch name sourcetree = "<group>"; }; </code></pre><p>когда я удалил маркеры конфликта слияния, вот что у меня осталось:</p><pre><code> id = { isa = pbxgroup; children = ( id ); name = "your group name"; id = { isa = pbxgroup; children = ( id ); name = "your group name"; sourcetree = "<group>"; }; </code></pre><p>обычно удаление маркеров конфликта слияния устраняет проблему разбора в файле project.pbxproj и восстанавливает целостность рабочей области. на этот раз это не так.</p><p>вот что я сделал, чтобы решить эту проблему:</p><pre><code> id = { isa = pbxgroup; children = ( id ); name = "your group name"; sourcetree = "<group>"; }; id = { isa = pbxgroup; children = ( id ); name = "your group name"; sourcetree = "<group>"; }; </code></pre><p>на самом деле мне пришлось добавить 2 строки в конце первой группы pbx.</p><p>вы можете видеть, что если бы я выбрал отмену изменений в head или в объединяющейся ветке, не было бы проблемы с разбором! однако в моем случае я хотел сохранить обе группы, которые я добавил, из каждой ветви, и простого удаления маркеров слияния было недостаточно; мне пришлось добавить дополнительные строки в файл project.pbxproj, чтобы обеспечить правильное форматирование.</p><p>так что, если вы столкнулись с проблемами разбора после того, как решили, что все конфликты слияния разрешены, вы можете поближе взглянуть на .pbxproj и убедиться, что проблем с форматированием нет!</p>

<p>я получил точно такую же ошибку, потому что cordova позволит вам создать проект с пробелами в нем, а xcode не знает, как с этим работать.</p>

<p>визуальный анализ файла проекта xcode не помог мне найти ошибку после слияния. посмотрев в syslog нашел такую строку, когда xcode пытается разобрать файл:</p><pre><code>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. </code></pre><p>после исправления этот проект может быть открыт в порядке.</p>

<p>у меня была похожая проблема.</p><p> <a href="https://i.stack.imgur.com/kn83b.png"><img src="https://i.stack.imgur.com/kn83b.png" alt="screenshot 1"></a> </p><p>ниже приведены шаги по ее устранению:</p><ol> <li> <p>перейдите в папку, где находится ваш <code>projectname.xcodeproj</code>.</p> <p> <a href="https://i.stack.imgur.com/ypflf.png"><img src="https://i.stack.imgur.com/ypflf.png" alt="screenshot 2"></a> </p> </li> <li> <p>щелкните правой кнопкой мыши и выберите "<code>show package contents</code>". вы сможете увидеть список файлов с расширением <code>.pbxproj</code>.</p> <p> <a href="https://i.stack.imgur.com/bqdz5.png"><img src="https://i.stack.imgur.com/bqdz5.png" alt="screenshot 3"></a> </p> </li> <li> <p>выберите <code>project.pbxproj</code>. щелкните правой кнопкой мыши и откройте этот файл, используя "<code>text edit</code>".</p> <p> <a href="https://i.stack.imgur.com/mogt1.png"><img src="https://i.stack.imgur.com/mogt1.png" alt="screenshot 4"></a> </p> </li> <li> <p>вы сможете увидеть <code><<<<<< .mine</code>, <code>============</code> и <code>>>>>>>>>>> .r123</code>. обычно это конфликты, возникающие при обновлении из svn. удалите их и сохраните файл.</p> <p> <a href="https://i.stack.imgur.com/nmgcg.png"><img src="https://i.stack.imgur.com/nmgcg.png" alt="screenshot 5"></a> </p> <p> <a href="https://i.stack.imgur.com/r1hd5.png"><img src="https://i.stack.imgur.com/r1hd5.png" alt="screenshot 6"></a> </p> </li> <li> <p>теперь вы сможете <em> открыть проект без каких-либо сообщений об ошибках </em>.</p> </li> </ol>

<p>недавно я столкнулся с той же проблемой при попытке объединить мою ветку с удаленной веткой. однако ни одно из вышеперечисленных решений не казалось подходящим для моей проблемы.</p><p>не было конфликтов слияния между файлом project.pbxproj в моей ветке или удаленной веткой. однако мой файл projectname.xcodeproj будет отказываться открываться по той же причине, что и в заданном вопросе.</p><p>мое решение состояло в том, чтобы просмотреть файл project.pbxproj с помощью текстового редактора и выяснить, есть ли какие-либо нарушения в синтаксисе файла (например, для дополнительной фигурной скобки). я ускорил этот процесс, сосредоточившись на строках, которые были вставлены или удалены в старом файле по сравнению с объединенным файлом. при ближайшем рассмотрении я обнаружил, что причиной моей проблемы было повторение следующей строки:</p><pre><code>xxxxxxxxxxxxx /* [cp] check pods manifest.lock */ = { </code></pre><p>в моем объединенном файле. это привело к закрытой фигурной скобке и, как следствие, к неверному синтаксису pbxproj. удаление вышеуказанной строки устранило мою проблему.</p>

<p>проанализируйте синтаксис файла вашего проекта. проверьте это внутри вашего проекта в терминале:</p><p><code>plutil -lint project.pbxproj</code></p><p>это покажет вам ошибки от парсера.</p><p><strong>возможная проблема</strong>: некоторые проекты устанавливают стратегию слияния git <code>union</code> для файлов проекта. это работает в большинстве случаев, но в случае сбоя будет молча убивать файл вашего проекта. эта стратегия определена в файле <code>.gitattributes</code> в вашем хранилище.</p>

<p>я просто столкнулся с той же проблемой. я удалил сгенерированные строки с помощью git, как всегда, но xcode все еще отказывался открывать файл .xcodeproj. но все было правильно, без пропущенных скобок и т.д. наконец я попытался <b>выйти из xcode</b> и откройте проект, когда <b>xcode был закрыт</b>.. тогда это сработало. я надеюсь, что это помогает кому-то.</p><p>правка:</p><p>для разрешения конфликтов в вашем файле .xcodeproj вы можете использовать этот удобный скрипт:</p><ol> <li>создайте пустой файл .sh в каталоге вашего проекта (например, resol\_conflicts.sh)</li> <li> <p>вот сценарий:</p> <p>projectfile = <code>find -d . -name 'project.pbxproj'</code> projectdir = <code>echo *.xcodeproj</code> projectfile = "$ {projectdir} /project.pbxproj" tempfile = "$ {projectdir} /project.pbxproj.out" savefile = "$ {projectdir} /project.pbxproj.mergesave" cat $ projectfile | grep -v "<<<<<<< голова" | grep -v "=======" | grep -v "^ >>>>>>>"> $ tempfile mv $ tempfile $ projectfile</p> </li> <li> <p>запустите его из терминала, используя команду sh: sh resol\_conflicts.sh</p> </li> </ol>

<p>вернуть проект .pbxproj</p><p>svn revert --filename--</p>

<p>измените текущую папку проекта nam и модуль оформления заказа на тот же проект. затем добавьте текущий файл изменений.</p>

<p>попробуйте найти head и \_head между строк и удалите эти слова в project.pbxproj. сделайте резервную копию этого файла, прежде чем делать это ..</p>

<p>похоже, вам придется создать новый проект в xcode, перейти в старый каталог и перетащить все ваши исходные файлы, перья и ресурсы на боковую панель файлов xcode в новом проекте. это не должно занять больше нескольких минут, если вы действительно не проделали большую работу с пользовательскими настройками сборки или целями. либо так, либо вернитесь к последней регистрации в вашем контроле исходного кода и вручную добавьте любые файлы кода, которые менялись между настоящим моментом.</p>

<p>и как только вы снова заработаете, вам следует использовать что-то вроде subversion или mercurial для резервного копирования и контроля версий. помните, что электроны не всегда идут туда, куда они должны, делайте резервные копии рано и часто!</p>

<p>просто проверьте файл project.pbproject и выполните сравнение с рабочей версией файла проекта.</p><p>часто это происходит, когда у вас возникают конфликты с системой управления версиями, как здесь: <a href="https://stackoverflow.com/questions/1496182/user-file-cannot-be-parsed-in-subversion-in-mac-iphone-sdk">файл пользователя не может быть проанализирован в subversion в mac iphone sdk</a> </p>

<p>перейти к phonegaptest >> платформа. затем удалите папку ios, после этого перейдите в терминал, затем введите: sudo phonegap build ios, после чего вы можете запустить проект.</p>