Estou trabalhando há algum tempo para criar um aplicativo para iPhone. Hoje, quando minha bateria estava fraca, eu estava trabalhando e salvando constantemente meus arquivos de origem, então a energia caiu ...
Agora, quando eu conectei meu computador novamente e ele está recebendo energia boa, tento abrir meu arquivo de projeto e obtenho um erro:
Incapaz de abrir o projeto
Projeto ... não pode ser aberto porque o arquivo do projeto não pode ser analisado.
Existe uma maneira de as pessoas saberem que eu posso me recuperar disso? Tentei usar um arquivo de projeto mais antigo, inseri-lo novamente e compilá-lo. Isso me dá um erro estranho, provavelmente porque não está encontrando todos os arquivos que deseja ...
Eu realmente não quero reconstruir meu projeto do zero, se possível.
EDITAR
Ok, eu fiz uma diferença entre este e um arquivo de projeto um pouco mais antigo que funcionou e vi que havia alguma corrupção no arquivo. Depois de mesclá-los (as partes boas e as mais novas) agora está funcionando.
Grandes pontos sobre o SVN. Eu tenho um, mas tem havido alguma preocupação ao tentar sincronizar o XCode com ele. Definitivamente vou passar mais tempo com ele agora ... ;-)
A resposta de Muhammad foi muito útil (e ajudou a levar à minha correção). No entanto, simplesmente remover o >>>>>>> ======= <<<<<<< não foi suficiente para corrigir o problema de análise no project.pbxproj (para mim) ao manter as alterações de ambos os ramos após uma fusão.
Tive um conflito de mesclagem na seção PBXGroup (cujo início é indicado por um comentário de bloco como este: / * Iniciar seção PBXGroup * /) do arquivo project.pbxproj. No entanto, o problema que encontrei pode ocorrer em outros lugares no arquivo project.pbxproj também.
Abaixo está uma simplificação do conflito de mesclagem que encontrei:
Quando removi os marcadores de conflito de mesclagem, fiquei com o seguinte:
Normalmente, a remoção dos marcadores de conflito de mesclagem corrige o problema de análise no arquivo project.pbxproj e restaura a integridade do espaço de trabalho. Desta vez, não.
Abaixo está o que fiz para resolver o problema:
Na verdade, tive que adicionar 2 linhas no final do primeiro PBXGroup.
Você pode ver que se eu tivesse optado por descartar as alterações do Head ou do branch de mesclagem, não teria havido um problema de análise! No entanto, no meu caso, eu queria manter os dois grupos que adicionei de cada ramificação e simplesmente remover os marcadores de mesclagem não era suficiente; Tive que adicionar linhas extras ao arquivo project.pbxproj para manter a formatação correta.
Portanto, se você tiver problemas de análise depois de pensar que teria resolvido todos os seus conflitos de mesclagem, convém dar uma olhada mais de perto no .pbxproj e certificar-se de que não há problemas de formatação!
fonte
Recebi exatamente o mesmo erro porque o Cordova permitirá que você crie um projeto com espaços e o Xcode não sabe como lidar.
fonte
Eu tive um problema semelhante.
Abaixo estão as etapas para resolver isso:
Navegue até a pasta onde está seu
projectName.xcodeproj
.Clique com o botão direito e selecione '
Show Package Contents
'. Você poderá ver uma lista de arquivos com.pbxproj
extensão.Selecione
project.pbxproj
. Clique com o botão direito e abra este arquivo usando 'Text Edit
'.Você será capaz de ver
<<<<<< .mine
,============
e>>>>>>>>>> .r123
. Geralmente, são conflitos que surgem quando você faz uma atualização do SVN. Exclua-os e salve o arquivo.Agora você poderá abrir o projeto sem nenhuma mensagem de erro .
fonte
A análise visual do arquivo de projeto Xcode não me ajudou a localizar o erro após a fusão. Depois de olhar para o syslog, encontrei essa linha quando o Xcode tentava analisar o arquivo:
Depois de consertar esse projeto pode ser aberto ok.
fonte
Analise a sintaxe do seu arquivo de projeto. Verifique dentro do seu projeto no terminal:
plutil -lint project.pbxproj
Isso mostrará os erros do analisador.
Possível problema : Alguns projetos definem a estratégia de fusão git
union
para arquivos de projeto. Isso funciona na maioria das vezes, mas eliminará silenciosamente o arquivo de projeto se ele falhar. Esta estratégia é definida no.gitattributes
arquivo em seu repositório.fonte
Eu enfrentei o mesmo problema recentemente ao tentar mesclar meu branch com um branch remoto. No entanto, nenhuma das soluções acima parecia apropriada para o meu problema.
Não houve conflitos de mesclagem entre o arquivo project.pbxproj em meu branch ou o branch remoto. No entanto, meu arquivo projectName.xcodeproj se recusaria a abrir pelo mesmo motivo mostrado na pergunta feita.
Minha solução foi examinar o project.pbxproj usando um editor de texto e descobrir se havia alguma irregularidade na sintaxe do arquivo (por exemplo, uma chave extra). Acelerei esse processo focalizando as linhas que foram inseridas ou excluídas no arquivo antigo em comparação com o arquivo mesclado. Examinando mais de perto, descobri que a causa do meu problema era a repetição da seguinte linha:
no meu arquivo mesclado. Isso levou a uma chave não fechada e, consequentemente, à sintaxe inválida do pbxproj. Excluir a linha acima corrigiu meu problema.
fonte
Acabei de ter o mesmo problema. Removi as strings geradas pelo git como sempre, mas o Xcode ainda se recusou a abrir o arquivo .xcodeproj. Mas tudo estava correto, sem colchetes etc. Finalmente tentei sair do Xcode e abrir o projeto quando o Xcode foi fechado ... então funcionou. Espero que isso ajude alguém.
EDITAR:
para resolver conflitos em seu arquivo .xcodeproj, você pode usar este script útil:
Aqui está o script:
projectfile =
find -d . -name 'project.pbxproj'
projectdir =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
Execute-o do terminal usando o comando sh: sh resolve_conflicts.sh
fonte
resolve_conflicts.sh: line 1: -d: command not found resolve_conflicts.sh: line 3: $tempfile: ambiguous redirect
Reverter o project.pbxproj
svn revert --filename--
fonte
Passos a serem seguidos: - 1.Navegue para a pasta onde seu projectName.xcodeproj 2.Clique com o botão direito e selecione 'Mostrar Conteúdo do Pacote'. Você poderá ver uma lista de arquivos com extensão .pbxproj. 3.Selecione project.pbxproj. Clique com o botão direito e abra este arquivo usando 'Edição de Texto'. 4. Você poderá ver <<<<<<, ============ e >>>>>>>>>>. Geralmente são conflitos que surgem quando você faz uma atualização do Sourcetree / SVN / GITLAB. Exclua-os e salve o arquivo. 5.Agora, você poderá abrir o projeto sem nenhuma mensagem de erro.
fonte
Parece que você vai ter que criar um novo projeto no Xcode, ir para o diretório antigo e arrastar todos os seus arquivos de origem, nibs e recursos para a barra lateral de arquivos Xcode no novo projeto. Não deve demorar mais do que alguns minutos, a menos que você realmente tenha trabalhado muito com configurações ou destinos de compilação personalizados. Ou isso, ou reverta para o último check-in em seu controle de origem e adicione manualmente quaisquer arquivos de código que foram alterados entre agora e então.
fonte
E assim que as coisas funcionarem novamente, você deve começar a usar algo como o subversion ou mercurial para backup e controle de revisão. Lembre-se de que os elétrons nem sempre vão para onde deveriam, fazem backup cedo e com frequência!
fonte
altere o nome da pasta do projeto atual e o módulo de checkout do mesmo projeto. Em seguida, adicione as alterações do arquivo atual.
fonte
Basta verificar o arquivo project.pbproject e fazer uma comparação com uma versão de trabalho do arquivo de projeto.
Muitas vezes isso acontece quando você tem conflitos de um sistema de controle de versão como postado aqui: O arquivo do usuário não pode ser analisado no subversion no MAC iphone SDK
fonte
Tente encontrar HEAD e _HEAD entre as linhas e exclua essas palavras em project.pbxproj. Faça backup deste arquivo antes de fazer isso ..
fonte
Vá para PhoneGapTest >> platform Exclua a pasta ios depois disso vá para o terminal e digite: sudo phonegap build ios depois disso você pode executar o projeto
fonte
Ao reverter, você pode desfazer o código puxado.
Se você quiser desfazer essa solicitação de pull, basta colocar este comando no caminho do projeto
->
git merge --abort
fonte
Caso não tenha encontrado em Texto === ou <<< ou >>>> como foi para mim o problema foi muito simples e divertido ... Eu mudo o nome do App no Xcode, mas não mudo no UnityProjectSettings antes de construir - esse era o problema ...
fonte
o subversion irá corromper meu arquivo de projeto após um svn up quase semanalmente. Estou tentando descobrir por que ele faz isso agora e me deparei com esse problema.
fonte
Isso ocorre porque os nomes dos projetos não devem ter espaços em branco entre eles
fonte