De repente, o Xcode parou de executar o projeto no hardware: "Não foi possível iniciar o xxx.app: .. Não existe esse arquivo .."

139

O Xcode parou de ser capaz de executar meu aplicativo, ele foi iniciado imediatamente depois que eu o excluí do dispositivo e tentei reinstalá-lo executando-o novamente no Xcode (algo que já fiz centenas de vezes).

Diz

"Não foi possível iniciar o XXX.app"

"Nenhum arquivo ou diretório (/Users/Mylaptop/Library/Developer/Xcode/DerivedData/MyApp-ekxcbebfpzkahtfkujyqkcwprzia/Build/Products/Debug-iphoneos/MyApps.app/MyApp)."

Reiniciei o telefone, reiniciei o Xcode, limpei tudo, reconstruí tudo. Esta mensagem de erro não desaparece.

É com o Xcode 4.5 que eu uso desde que ficou disponível. Se eu voltar para 4.3.2, o Xcode diz "Aplicativo em execução concluído", mas na verdade não faz nada - o aplicativo não está instalado nem em execução.

Estou completamente paralisado - não consigo mais executar nada no dispositivo.

Alguma sugestão?

Gruntcakes
fonte
4
Goto o organizador em sua xcode, guia projetos de imprensa e apagar os dados obtidos para o seu projeto e limpar o projeto e novamente construí-lo ..
Dinesh Raja
2
Ainda tem a mesma coisa depois de fazer isso. Vou tentar uma reinstalação do Xcode.
Gruntcakes
Eu acho que você mudou alguma coisa em suas configurações de compilação no caminho para executar seu aplicativo no dispositivo
Dinesh Raja
9
Descobri o que era - ao adicionar recursos de dispositivo ao info.plist, de alguma forma eu adicionei uma nova linha, mas não dei valor a ela.
Gruntcakes
1
Embora a exclusão dos dados derivados tenha funcionado para mim, não ajudou até reiniciar o iPad e o OS / X, esvaziar o lixo depois de usar o Finder para excluir os dados derivados e remover um periférico BLE conectado por uma porta USB. Não sei qual das etapas foi necessária - o XCode foi compilado posteriormente com o periférico BLE conectado - mas, depois que todas essas etapas foram adicionadas para excluir os dados derivados, o projeto foi compilado.
Mike

Respostas:

125

Isso é realmente irritante. Este erro ocorre em várias situações diferentes. Às vezes, reiniciar o Xcode, corrige o problema. Caso contrário, siga estas etapas:

Desconecte seu dispositivo.

Exclua o aplicativo do seu dispositivo.

Saia do Xcode (não feche simplesmente a janela, saia)

Excluir pasta de dados derivados ( ~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffp- ou algo parecido)

Agora inicie o Xcode novamente, conecte o dispositivo e execute o projeto. Deve funcionar bem.

do blog DhilipSiva

Sudhakar
fonte
4
Essa foi a chave para mim. Aprecie o nível de detalhe na resposta.
Jason Pawlak
Apenas uma das coisas "muito chato" quando se trabalha nesta plataforma
rushinge
2
não trabalhando ... Eu estou correndo no dispositivo
Rajneesh071
As etapas acima não resolveram o problema. Ainda estou recebendo o "Não foi possível executar <app>. <App> não encontrado".
user298261
funcionou para mim, tente este
Muhammad Waqas
57

Tente excluir "Recursos necessários do dispositivo" no arquivo -Info.plist.

Você não pode exigir o armv7 em um 3G e o armv6 em nenhum dispositivo mais recente; portanto, exclua esse atributo completamente.

Almog C
fonte
2
Esta é a única solução que funcionou para mim. Já tentando atualizar certificados, limpar pastas reiniciando o dispositivo, xcode e mac nada ajudou. Basta excluir o atributo e ele instalou e funcionou bem.
Automaticoo
1
Esta solução também funcionou para mim - erro estranho.
misnomer
Também tive que garantir que as arquiteturas válidas na instalação incluíssem armv6, armv7 e armv7s (agora estou usando o XCode 4.5 ... eu sei que isso faz alguns meses, mas vale a pena mencionar.) Além disso, esses três devem ser listados na seção Arquiteturas também.
David Morton
Tentei isso, sem alegria, mas a resposta Sudhakar + Jagger funcionou. Xcode 4.5.1 e um iPad1
mm2001 26/10/12
Esse era o problema para mim: meu aplicativo tinha "telefonia" como um recurso necessário e eu estava tentando executá-lo em um iPad mini apenas com WiFi.
Chitza
38

Eu encontrei a resposta. A versão do destino de implantação do iOS não era a mesma do SO do meu dispositivo.

wihing
fonte
Também fez por mim. Por alguma razão, o XCode sempre deseja redefinir o destino de implantação do meu projeto para 6.0.
Donald Burr
3
funcionou para mim também ... Eu estava mudando o tipo de dispositivo de "iPhone" para "Universal" e o xcode mudou automaticamente o destino para 6.0, o que não percebi a princípio. Mudou de volta para 4,3 e funcionou ...
Jim Jose
Pena que remover o DerivedData e os recursos necessários do dispositivo não ajudou, por isso defino meu destino de implantação de 6.1 para 5.0 e ele funcionou no meu iPod Touch executando o iOS 5.1.
Richard Altenburg - Brainchild 11/03
Oh Deus. quantas vezes eu vou fazer o mesmo falhar ...
heximal
esta foi a solução para mim
GeorgeBuckingham
13

Tentei primeiro alguns dos itens acima com info.plists e excluindo dados derivados, limpos etc.

Minha solução: saia do XCode, reabra o projeto. Vá para dados derivados no Finder. Dados excluídos para todos os projetos (todos eram passíveis de remoção, mas eu tentaria excluir primeiro os dados problemáticos do projeto). E então funcionou novamente. A exclusão de dados derivados do XCode não funcionou.

Joris van Liempd iDeveloper
fonte
4
O caminho para a pasta de dados derivados: / Users / <User> / Library / Developer / Xcode / DerivedData /
Pascalius
isso resolveu o meu problema + A exclusão de todas as pastas liberou 10 GB de memória, então o dobro, obrigado :) #
315
10

O seguinte resolveu o meu problema ... meu aplicativo funcionou para mim na depuração / versão, então criei alguns arquivos ad-hoc e as versões da depuração / versão pararam de funcionar.

Sintomas:

  • erros de direitos inválidos ao iniciar do Xcode para o dispositivo (jogar com direitos ...)
  • abortamento imediato sem erro (execução concluída) ao executar o simulador
  • não foi possível iniciar ... o diretório blabla ... / build / product / debug-iphoneos / ... não encontrado ao iniciar do Xcode para o dispositivo.

Eventualmente, depois de tentar me beneficiar da dor de todos os outros, encontrei em Alvos [AppName]:

Build Settings
Build Locations
Build Products Path build

deveria estar

Build Products Path build/Products

Não faço ideia de como isso foi definido incorretamente. Isso deve ser codificado em algum lugar do Xcode / Springboard porque 'Produtos' aparece no Xcode e no console do dispositivo. Este é o Xcode 4.5.1.

captura de tela fo onde definir a compilação / Produtos

KeithL
fonte
1
Você poderia formatar isso para tornar o significado um pouco mais claro? Não é óbvio como deve ser inserido.
itsbruce
1
Uau, muito obrigado Keith. Depois de 4 horas frustrantes, essa foi a causa. Como no mundo isso mudou está além de mim.
6123 carl_
1
Sim, resolveu o meu problema, mas por que isso aconteceu ?!
Ali
7

Eu resolvi esse problema

renomeando um diretório acima do meu projeto XCode

Alterar o nome do projeto em XCodecorrigi-lo para mim.

Em XCode, no Navegador de projeto, clique no nome do projeto e ele deve renomeá-lo como um arquivo no Finder. A exclusão de dados derivados não ajudou.

Scott Driscoll
fonte
Isso foi feito por mim, por algum motivo, falhou quando eu tinha um espaço em branco no nome do projeto. Renomeado para nenhum espaço em branco e ele funciona bem.
rita
6

Criei meu projeto XCode com o CMake e, de alguma forma, ele (ou meu eu estúpido) excluiu ou esvaziou a propriedade "Arquivo executável" no info.plist. Voltei ao $ {EXECUTABLE_NAME} e funcionou novamente.

Levei muito tempo trabalhando em todas as sugestões e correções até finalmente encontrar esse problema.

Espero que isso ajude alguém lutando com o mesmo problema

Editar:

De alguma forma, o CMake estava atrapalhando meu arquivo plist. Criei meu próprio Info.plist e usei-o da seguinte maneira:

SET_TARGET_PROPERTIES( MyApp PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/MyApp.plist )

Dentro da minha lista eu tinha esta entrada:

<key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string>

Infelizmente, o CMake ainda parece analisar esse arquivo e substituiu $ {EXECUTABLE_NAME} por uma string vazia, pois é a sintaxe da variável CMake. Meu trabalho rápido é o seguinte:

SET( EXECUTABLE_NAME "\${EXECUTABLE_NAME}" )

agora isso trabalha como charme.

Provavelmente estou sozinho com exatamente esse problema, mas quem sabe.

ecreif
fonte
Agradável. Removai acidentalmente meu arquivo .plist e essa era uma das propriedades que eu precisava adicionar novamente. Graças
A set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")era exatamente o que eu precisava. Eu adicionei esta linha na parte inferior do meu arquivo de ferramenta ios e a corrigi sem falhas. Muitíssimo obrigado!
Deathicon
5

Eu tive o mesmo problema, mas no meu caso, havia um requisito errado no meu info.plist (requer um giroscópio para um iPhone 3Gs)

Unfalkster
fonte
4

Tentei executar meu projeto em um sistema diferente daquele em que ele foi desenvolvido. Eu estava recebendo "Não foi possível iniciar o xxx.app: .. Não existe esse arquivo ..".

O aplicativo foi removido do dispositivo e excluído os dados derivados do organizador no xcode para o aplicativo. Organizador -> Projetos -> Dados derivados -> Excluir

Meu problema foi resolvido.

iSaalis
fonte
4

Você precisa definir o destino de implantação MAIS BAIXO que a versão do seu dispositivo

Jim Huang
fonte
4

Para mim, a solução era apenas usar o perfil de provisionamento correto (sem distribuição).

Eu costumava usar sempre o meu perfil de provisionamento ad hoc, mas depois mudei para o meu perfil de desenvolvedor (perfil da equipe) e isso resolveu as coisas. Fui em frente e limpei o diretório Derived Data para ser seguro, mas não sei ao certo se é necessário.

O XCode costumava ter um aviso que dizia para você usar o perfil de provisionamento correto, mas essa mensagem de erro parece ter desaparecido no XCode 4.5.

TPoschel
fonte
Esta é certamente uma série de falhas e correções, obviamente muitas falhas do XCode se espalham nessa mensagem de erro inútil. Desta vez, para nós e mais alguns abaixo, pareceu ser causado por problemas de certificado / assinatura / perfil, lançando alguns dos antigos expirados e certificando-me de que eu estava usando os mesmos perfis em todos os lugares (como Jabolcnik abaixo , Tenho várias contas de desenvolvedor, minha empregadora e minha.) Permitiram ao XCode executar o aplicativo no dispositivo.
Taryn
4

Eu tive esse problema por uma solução muito estranha.

Meu problema foi um pouco diferente, pois tenho 2 certificados de desenvolvedor no Keychain. Temos duas contas de desenvolvedor (digamos AD e BD).

1) Alterei o identificador de pacote de com.BD.game para com.AD.game 2) O dispositivo no qual tive problemas foi assinado apenas nos perfis de provisionamento do AD. 3) Não consegui depurar o jogo no iPad - embora o dispositivo tivesse perfis de provisionamento válidos, certificados válidos, reiniciei o Mac, o dispositivo, reinstalei o Xcode ... nada ajudou.

O que fiz hoje foi examinar o arquivo project.pbxproj em busca de entradas estranhas.

O que eu descobri foi que o Xcode estava usando o perfil de provisionamento adequado, mas assinou o ipa / app com certificado errado.

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: **BD** (XX******)";

Depois de corrigir manualmente o nome e o id; tudo funciona como charme.

Jabolcnik
fonte
4

Eu recebi o mesmo erro. No meu caso, eu defini o destino de implantação como 6.1 e tentando executar um iPad iOS 5.1. Quando mudei meu destino de implantação para 4.3, o problema foi resolvido.


Ainda está tendo o problema. Tente isso Desconecte seu dispositivo. Exclua o aplicativo do seu dispositivo. Saia do xcode. Agora inicie o Xcode, conecte o dispositivo e execute o projeto. Deve funcionar bem.

Nijil Nair
fonte
4

Para mim (usando o IOS 7 e o Xcode 5), o erro desapareceu logo após eu "Adicionar à Central de Membros" com meu dispositivo no Organizer.

Bruce Cichowlas
fonte
Isso ajudou. No entanto, eu precisava reiniciar o dispositivo depois disso para me livrar do erro.
Bit Bouncing
3

Gostaria de mencionar que a maneira mais fácil de abrir a pasta DerivedData no Finder é a seguinte:

  1. Abra o organizador.
  2. Clique em "Projetos".
  3. Selecione seu projeto problemático.
  4. Ao lado do caminho do DerivedData, clique no pequeno botão de seta para a direita.

A exclusão do conteúdo da pasta DerivedData funcionou para mim. Em vez de usar o botão "Excluir ...", você deverá ter mais sucesso ao excluir os arquivos manualmente através do Finder.

user444731
fonte
3

Vá para: seu projeto Destino -> Informações e, nas Propriedades de destino CustoM iOS, remova os Recursos de dispositivo necessários. No meu caso, eram armv7 e armv7s.

Depois disso, o aplicativo foi construído com sucesso no meu iPhone 4.

É assim que ele remove os dois requisitos

Dejan Balaban
fonte
Eu estava vendo o mesmo problema, o aplicativo seria executado no meu 5S pela primeira vez, mas não em períodos subsequentes, e minhas capacidades de dispositivo necessárias foram definidas como "armv7", removendo isso do plista de informações corrigido
Cam Saul
2

Para mim, esqueci que tinha "telefonia" nos "Recursos obrigatórios do dispositivo" no info.plist. Removi isso e finalmente funcionou no meu iPad.

ninjaneer
fonte
2

Para mim, reiniciar o Xcode, limpar o DerivedData e o dispositivo de reinicialização não era suficiente na maioria dos casos, até eu descobrir que o iTunes também estava em execução e, depois de sair do iTunes, tudo funcionou bem!

Então, meus passos agora são simples:

1. Saia do Xcode.
2. Se o iTunes estiver em execução, saia do iTunes.
3. Reabra o projeto.

Não há necessidade de remover o aplicativo do dispositivo, limpar o projeto ou reiniciar / desconectar o dispositivo. Eu acho que é porque o Xcode e o iTunes usam algumas bibliotecas comuns (como você sabe, o Xcode Installer sempre pede para sair do iTunes ao instalar o iOS SDK).

parametr
fonte
2

Eu tive esse problema e tentei várias sugestões que não funcionaram para mim - então encontrei a sobre remover os "Recursos obrigatórios do dispositivo" no arquivo -Info.plist (que para mim incluía serviços de localização e GPS) Isso funcionou! Eu os adicionei novamente e ele ainda funcionou .. vá entender. Este foi o xCode 4.6.1 e meu aplicativo é desenvolvedor com Phonegap / Cordova

Dylan Hamilton-Foster
fonte
Eu também encontrei uma string vazia lá e estava bloqueando o organizador! Obrigado pela dica !
PetrV
2

Eu tentei todas as opções acima e ainda assim não funcionava. Corrigi o problema alterando o local da compilação derivada. Arquivo> Configurações do projeto> "local dos dados derivados" muda para relativo ao projeto. Ou você pode apenas garantir que o caminho padrão tenha permissão para ler / gravar.

wickedgk
fonte
1

Meu problema parecia estar escolhendo a opção Retrato (botão superior da página inicial) como Item 0 nas orientações da Interface Suportada. Removê-lo ou movê-lo para baixo parecia resolver o meu problema. Vai saber.

Becka11y
fonte
1

Eu também tive esse problema em um aplicativo Universal com o Xcode 4.5 no meu iPhone SOMENTE, onde eu tinha dois dispositivos de depuração:

iPhone 4 iOS 5.1.1
iPad 1   iOS 5.1.1

O Info.plist tinha uma entrada vazia em "Recursos necessários do dispositivo" Eu sei que não inseri esse 'Item 0' vazio. O aplicativo é carregado no iPhone desde que removi o item vazio. Não encontrei esse problema em nenhuma das várias versões anteriores do Xcode. Isso significa que o Xcode 4.5 lida com esse item 'inserido' de maneira diferente para os dois dispositivos que eu uso. Eu já estive errado antes, mas isso parece um bug no Xcode 4.5.

mbarron
fonte
1

Isso pode parecer óbvio, mas você também deve definir seu destino de implantação para o sistema operacional em que seu dispositivo está executando.

Portanto, se você atualizar para o iOS 6, ele definirá seu destino de implantação para o iOS 6. Você precisará implantar para 5.1 se o dispositivo em que você estiver testando ainda executar o 5.1.

Matt Hudson
fonte
1

Finalmente, meu problema foi resolvido verificando se o productNameatributo na /* Begin PBXNativeTarget section */seção do meu project.pbxprojarquivo correspondia ao nameatributo.

Depois de editá-lo para que fiquem iguais, o Xcode finalmente executa o aplicativo no meu dispositivo corretamente!

Obrigado a Max Weisel por me ajudar! : D

Grantland Chew
fonte
1

Excluir a pasta de dados derivados não me ajudou. Usando o Xcode 4.4.2, a única solução foi abrir o Organizer e excluir perfis antigos e antigos de provisionamento expirados e externos no iDevice. Então tudo funcionou perfeitamente novamente.

Robert Wasmann
fonte
Isso certamente é uma série de falhas e correções, obviamente muitas falhas do XCode se espalham por essa terra de ninguém.
quer
1

Isso pode ser um problema, mas experimentei esses problemas quando adicionei imagens personalizadas de inicialização antes de excluir as padrão. Excluir o lançamento padrão e as imagens personalizadas e, em seguida, adicionar novamente as personalizadas, corrigiu isso para mim. Estou trabalhando com iOS 6 e Xcode 4.5.2

G O'Rilla
fonte
1

Parece haver algumas coisas diferentes que podem causar essa mensagem de erro muito útil.

Para mim, tudo se resumia a um "Recursos obrigatórios do dispositivo" incorretos no Info.plist. Eu adicionei um item de matriz em branco por engano (no topo da arquitetura, armv7). Excluiu o item da matriz em branco e agora está tudo bem!

MattP
fonte
1

Eu tive esse problema e nada realmente ajudou, exceto: Meu problema começou após alterar o conteúdo do meu info.plist e nenhuma reversão ajudou.

O que resolveu isso para mim foi:

  1. Crie um info.plist de baunilha em um novo projeto
  2. substitua o info.plist antigo pelo novo
  3. renomeá-lo (como app_info.plist)
  4. Defina Build Settings / Packaging / INFOPLIST_FILE como o novo.
  5. Faça todas as alterações necessárias para o seu projeto

Espero que ajude. Eu tentei tudo o mais sugerido aqui e esta foi a única solução para mim.

Capi Yoav Kedem
fonte
1

Enfrentando o mesmo problema, mas agora o problema está resolvido, excluí Executable file info.plist. Voltei ao $ {EXECUTABLE_NAME} e funcionou novamente .. :)

insira a descrição da imagem aqui

Rajneesh071
fonte
1

No meu caso, acabei de definir a permissão 777 diretamente para a pasta xxx.app em todos os arquivos e trabalhar!

Arthur Goulart
fonte