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.

D-Nice
fonte
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

MattyG
fonte
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.

axiixc
fonte
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.

Jeremy Flores
fonte
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!

Johann
fonte
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.

SPitBalls.com
fonte
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.

Graham Perks
fonte
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.

Tomek Kopczuk
fonte
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.

Casey
fonte
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.

Lucas
fonte
4

adicionar a arquitetura armv6 corrigiu isso para mim.

red_car
fonte
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.

O preto
fonte
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.

bxantus
fonte
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.

Alex Terente
fonte
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.

GeorgioA
fonte
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!

Rudyryk
fonte
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.

Halle
fonte
0

Resolvi isso alterando o "acelerômetro" de "NÃO" para "SIM" no meu Info.plist.

A Referência de chaves da lista de propriedades de informações da Apple diz que você pode remover completamente a configuração "acelerômetro" se "seu aplicativo detectar apenas alterações na orientação do dispositivo".

codeperson
fonte
seu aplicativo suporta acelerômetro?
mac
0

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

Morrowless
fonte
0

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

Namratha
fonte
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.

RohinNZ
fonte
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.

Ben Flynn
fonte
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.

d4n13l
fonte
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 :(

John Fawcett
fonte
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!

Claude COULOMBE
fonte
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 .

nickjwallin
fonte