O Xcode 4 diz "terminou de executar <meu aplicativo>" no dispositivo de destino - nada acontece


223

O aplicativo não instala nem é executado no meu dispositivo. Todos os perfis de provisionamento estão atualizados. Eu já tentei excluir e reinstalá-los.

A barra de status mostra que o Xcode está construindo meu projeto, depois diz executando o meu projeto e depois diz "terminou a execução". Durante todo esse período, a tela do iPod permanece preta. O iPod está sendo detectado no Organizer e não vejo nada de errado com sua configuração. Tudo estava funcionando perfeitamente há apenas alguns dias com o Xcode 3.

Ele não funciona no simulador, mas pode ser importante observar que, no simulador, ele fica preso em "Anexar a" e o simulador se recusa a iniciar.


1
Se você criar um projeto totalmente novo usando um dos modelos de xcode e tentar executá-lo no simulador ou no dispositivo, ele funcionará? Estou tentando determinar se a instalação / configuração do xcode está corrompida ou se algo no aplicativo que você está perguntando está influenciando o comportamento.
kennbrodhagen

2
Criou um novo modelo de projeto e funcionou. Então agora sabemos que algo deve estar mal configurado no meu projeto.
D-Nice

D-Nice, você já resolveu isso? Estou tendo exatamente o mesmo problema com o meu jogo e não posso resolvê-lo por toda a vida.
Adam Johnson

Respostas:


268

Para quem lê isso em relação ao Xcode 4.2 e tenta executar em um dispositivo anterior (por exemplo, iPhone 3G, 2G, iPod 1ª geração, etc.), tenho outra solução. Novos projetos criados no Xcode 4.2 por padrão especificam 'armv7' em 'Recursos de dispositivo necessários'. Você precisará removê-lo se desejar oferecer suporte a dispositivos que executam o armv6 (por exemplo, o iPhone 3G).

insira a descrição da imagem aqui

Exclua armv7 dos 'Recursos necessários do dispositivo' em yourProjectName-Info.plist

Você também pode precisar alterar as configurações de compilação para compilar com o armv6 em vez do armv7.

Este é o padrão:

insira a descrição da imagem aqui

Clique duas vezes em 'Standard (armv7)' para adicionar outro, clique no '+' no pop-up e digite 'armv6':

insira a descrição da imagem aqui

Clique em Concluído e deverá ficar assim:

insira a descrição da imagem aqui


1
Bingo: Eu tive que executar as duas etapas descritas para executar corretamente no meu antigo iPhone 3G. Obrigado MattyG!
Ariel Malka

1
Graças um milhão! Eu daria a você 10 votos se eu pudesse. Eu estava passando por todos os cenários desta página sem sorte alguma. De alguma forma, esse valor deve ter sido alterado quando eu atualizei para o XCode 4.3.
IcyBlueRose

Obrigado por seus esforços para explicar o procedimento em detalhes.
Alekhine #

4
Obrigado de mim também! Muitas pessoas sugeriram adicionar 'armv6', mas remover o armv7 é o truque!
Harry Wood

1
"Excluir armv7 dos 'Recursos obrigatórios do dispositivo' em yourProjectName-Info.plist" -> Obrigado
Oded Regev

43

Acabei de ter esse problema, mas para mim foi porque só especifiquei armv7 em minhas arquiteturas, mas o 3G é armv6. Verifique se você tem os dois.


Essa foi a principal causa para mim. Tão fácil esquecê-lo. Obrigado.
Lukasz

5
Para adicionar a opção "armv6", consulte o seguinte: stackoverflow.com/questions/7488657/…
pauloya

Meu iPod Touch mais antigo também deve ser o armv6, porque esse reparo também funcionou para ele.
precisa saber é o seguinte

Sim, tenho certeza de que o iPhone original, o 3G e os dois primeiros toques do iPod foram armv6.
axiixc

21

Eu tive esse problema e, por acaso, o XCode estava padronizando o Deployment Target para 4.3, enquanto meu telefone é 4.2.1. Alterar o destino de implantação para 4.0 parecia resolvê-lo.


Exatamente o que eu estava procurando.
abscondment

Eu tive esse problema ao definir destino de implementação para 5,1 quando o dispositivo foi apenas até 5.0.1 - Companheiro dos elogios +1
theiOSDude

12

Depois de adicionar "armv6" às arquiteturas de projeto e destinos, verifique se você não possui "armv7" na seção "Recursos obrigatórios do dispositivo" do seu info.plist. Se sim, basta removê-lo e ele deve funcionar!


Sim, esta é a razão do meu caso. Não faço ideia de como os "Recursos necessários para dispositivos" do armv7 entraram em cena. Obrigado!
GeneCode 9/02/12

11

O mesmo problema aqui com o aplicativo não está sendo executado no dispositivo. A exclusão do aplicativo do dispositivo não ajudou. Projeto -> Limpar e Projeto -> Executar novamente também não ajudaram. Aconteceu que apenas sair e reiniciar o Xcode 4 resolveu o problema.


9

Eu também tinha isso também. Eu adicionei uma seção UIRequiredDeviceCapabilities ao info.plist, exigindo gamekit, e o aplicativo não seria copiado em um iPhone 3G com o iOS 4.2. Removida a capacidade necessária, está tudo bem.


Como você deve testar aplicativos que exigem kit de jogos no próprio dispositivo?
Rob

Você ainda obtém o GameCenter sem o seu info.plist dizendo que precisa de um dispositivo que o possua. Qualquer dispositivo executando o 4.2 possui o GameCenter, portanto não há necessidade de informações adicionais.plista "Preciso!"
Graham Perks

6

Tente excluir o aplicativo no dispositivo (assim como a desinstalação normal do aplicativo) e executá-lo no Xcode novamente. Me ajudou com o mesmo problema, além do simulador não funcionar.


Não há mais vestígios do aplicativo no dispositivo. Não acho mais que isso seja um problema de provisionamento ... há algo que foi corrompido no meu projeto, mas não tenho idéia do que possa ser.
D-Nice

6

Meu caso: Defino por engano o: Recursos obrigatórios do dispositivo -> acelerômetro como NO (no Info.plist). Basta configurá-lo novamente para SIM

Além disso: verifique se os recursos necessários do dispositivo são do tipo adequado: por exemplo, booleano ou string. O tipo errado invariavelmente fará com que o teste falhe e o aplicativo não seja carregado.


4

Para aqueles que ainda se debatem, outra coisa que eu precisava fazer era tornar o nome do produto do meu destino o mesmo para as configurações de Debug e Release. Ele estava "executando" a versão Debug, que eu não estava construindo.


4

adicionar a arquitetura armv6 corrigiu isso para mim.


foi isso para mim; a nova versão do Xcode decide remover ARMv6 de configuração construção das arquiteturas 'assim você terá de adicioná-lo novamente manualmente

2

Às vezes acontece comigo também. Fazer limpeza (menu Produto -> Limpar) e executar (menu Projeto -> Executar) sempre o corrige.


Obrigado! Isso acontece com frequência. Cada vez que tento algo novo! Isso é um bug no Xcode?
Namratha

2

Eu tive o mesmo problema: migrou um projeto do xcode3 para o xcode4 e, depois de criar o aplicativo, o xcode não quis instalar e iniciar o aplicativo no meu telefone.

Minha solução (que funcionou para mim) é:

  • Edite seu esquema (que deve ser executado)
  • Na lista à esquerda, selecione 'Executar xyz.app'
  • Na guia informações, em Executável, selecione '.app'. Altere isso navegando para o diretório de compilação e escolhendo seu aplicativo.

Trabalhou para mim e, a partir de agora, posso usar: 'Produto -> Executar ação -> Executar sem construção', para executar a versão mais recente. Isso é mais rápido do que simplesmente pressionar Executar, pois nenhuma ação de compilação será executada.


não existe um diretório de compilação para o meu? esquisito.
Sam Jarman

1

Basta reiniciar o dispositivo. Faça um projeto limpo. Exclua o aplicativo do dispositivo e reconstrua.


0

As configurações de compilação foram diferentes para o projeto e os destinos. Eu apenas pressione suppr no caminho Build Products e no intermediário Build Files Path nas duas seções e isso resolveu o meu problema.


0

Eu tive o mesmo problema com o meu projeto de jogo usando o Cocos2D. "Olá, mundo" do modelo funcionou bem, meu projeto funcionou bem no simulador, mas a execução falhou no dispositivo com a mensagem: "Execução concluída".

Substituí o Info.plist no meu projeto pelo inicial do modelo e funcionou para mim!


0

Experimentei isso duas vezes com dois aplicativos diferentes ao passar para a versão mais recente do Xcode. Na primeira vez, o que funcionou foi compilar o aplicativo com o compilador GCC LLVM. Na segunda vez, o que funcionou foi voltar à arquitetura armv6 como arquitetura suportada, uma vez que ela foi removida quando o Xcode atualizou automaticamente o projeto.



0

Minha solução foi adicionar UIInterfaceOrientationPortraità UISupportedInterfaceOrientationsmatriz no Info.plist, mesmo que meu aplicativo não suporte retrato.


0

Um campo chamado "Aplicativo requer ambiente para iPhone" chegou à minha lista de alguma forma. Eu o removi e pronto! Funcionou no meu iPod.


0

Meu Info.plist tinha a associação de destino definida como meu destino de construção. Removê-lo da associação de destino resolveu o problema.


0

Eu estava usando um nome alternativo para o Info.plist, mas não havia definido corretamente a Info.plist Fileconfiguração de compilação no meu destino. Descobri isso olhando para o Application Bundle e vendo que ele não continha um Info.plist.


0

Verifique se a versão de destino da implantação é <= a versão do iOS no seu dispositivo. Foi assim que resolvi esse problema.


0

Eu estava tendo o mesmo problema há cerca de 45 minutos. A limpeza não ajudou, recriar o projeto não ajudou, a versão do braço não ajudou. Eu tinha algumas mensagens "Não foi possível sincronizar com o iTunes" abertas que eu não via antes. Clicar em OK naqueles parecia ter corrigido o problema :(


0

O XCode foi construído, executado e finalizado, mas o aplicativo falhou ao ser implantado e nem sequer foi copiado para o dispositivo.

De fato, deve haver algo no projeto XCode que está quebrado. A melhor jogada é criar um novo projeto a partir do zero. Não se esqueça de adicionar o suporte armv6, conforme indicado em uma postagem anterior.

Funciona bem para mim!


0

Isso aconteceu comigo, tentando executar um aplicativo watchOS no dispositivo, porque a versão watchOS do meu Apple Watch era superior à do Xcode atualmente instalado. Atualizei para o Xcode mais recente (que também exigia que eu atualizasse para o macOS mais recente), e ele correu bem depois disso .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.