Não consigo iniciar meu aplicativo em instrumentos: pelo menos um alvo falhou ao iniciar


98

Tenho todos os meus direitos de assinatura de código definidos corretamente. Executar o aplicativo no meu telefone é bom, mas iniciá-lo por instrumentos me dá uma mensagem de erro:

Error Starting Recording
At least one target failed to launch; aborting run

E depois:

Target failed to run. Permisson to debug [app name] was denied. The app must be signed with a development identity (i.e. iOS Developer)

Alguma ideia de como eu poderia impedir que isso acontecesse? Não acontece no meu iPad.

Respostas:


217

Edite o esquema para o seu destino e em "Perfil [Nome do aplicativo]" defina a configuração de compilação para depurar (geralmente é versão por padrão).


6
1, obrigado, isso me ajudou. Eu acrescentaria que tive que construir o projeto depois de definir a configuração para Debug ou os instrumentos ainda não funcionariam.
Robert,

4
Embora eu saiba que essa "configuração de alteração para depuração" está errada, não tenho uma solução para esse problema. De um modo geral, é muito menos útil / comum criar o perfil de uma construção de depuração.
user501138

1
Isso ocorre porque o Release geralmente usa o certificado de produção.
Evgeny Aleksandrov

Verifiquei se o esquema de perfil está usando a configuração de depuração (perfil de desenvolvedor) e ainda estou encontrando esse problema. Este é um certificado de desenvolvedor corporativo, embora eu não espere que seja significativo. Alguma ideia?
Brody Robertson

3
Estou tendo o mesmo problema. A definição de perfil de seu aplicativo com configuração de depuração não é um teste de desempenho válido, pois o compilador não otimizou o código como faz para Adhoc. Alguém descobriu o problema AdHoc?
Fergal Rooney

34

Está dizendo que você precisa assinar o aplicativo com um certificado de desenvolvedor (não uma distribuição certificado de ).

No Xcode 5, apenas altere o "Provisioning Profile"campo para sua "Release"construção nas Configurações de construção para seu certificado de desenvolvedor em vez de seu certificado de distribuição. Pela duração do teste de qualquer maneira. O Xcode não permite que você construa com um certificado de distribuição.

Certifique-se de que as configurações de construção do projeto não substituam as configurações de construção de destino ou façam a alteração nas configurações de construção do projeto .

Não se esqueça de definir o perfil de volta depois de concluir o teste.

Eu não recomendo o método de harrywynn, já que é melhor traçar o perfil do build de lançamento porque então você está levando em consideração as otimizações do compilador e tendo a experiência exata que seus usuários terão.


1
Primeiro, ele precisa de um perfil de desenvolvimento, então significa que precisa estar no modo de depuração. Em segundo lugar, a menos que a Apple mude para o perfil de distribuição, os desenvolvedores provavelmente irão com compilações de desenvolvimento. Terceiro, você está definindo o perfil, deve ser um build de desenvolvimento (Debug). Quarto, por que você usaria um perfil de desenvolvimento para um esquema de lançamento?
Angelo

4
"Primeiro, ele precisa de um perfil de desenvolvimento, então significa que precisa estar no modo de depuração." Você pode executar qualquer configuração com qualquer perfil. "Terceiro, você está definindo o perfil, deve ser um build de desenvolvimento (Debug)" Você deve criar o perfil com o build de lançamento para levar em consideração as otimizações do compilador. Você pode obter resultados diferentes. "Quarto, por que você usaria um perfil de desenvolvimento para um esquema de lançamento?" Porque essa é a solução mais fácil para esse problema. E você deve alterar o perfil de volta quando estiver pronto para o teste, como escrevi em minha resposta.
Zoltán Matók

9

Para adicionar às respostas anteriores.

  • Instruments está reclamando da identidade da assinatura .
  • Acredito que seja preferível criar um perfil no modo de liberação, pelas mesmas razões apresentadas por Zolten. (leve em consideração as otimizações do compilador e tenha a experiência exata que seus usuários terão, etc ...)
  • Para alterar sua identidade de assinatura de código para Xcode 6 :
    • Clique no seu projeto, selecione o destino que você está criando.
    • Configurações de compilação -> Assinatura de código -> Identidade de assinatura de código -> Liberação
    • Selecione seu perfil de desenvolvedor iOS.
  • Perfil de provisionamento: deixe o Xcode escolher o perfil de provisionamento correto para você, por exemplo: mudar para automático
  • Quando terminar de usar o Perfil, volte às configurações normais .

Aqui está uma imagem para aqueles que são muito visuais;)

insira a descrição da imagem aqui


1

Eu estava tendo o mesmo problema: [INST STDERR] Erro de rastreamento de instrumentos: Falha ao executar o destino: permissão para depurar negada. O aplicativo deve ser assinado com uma identidade de desenvolvimento (por exemplo, desenvolvedor iOS).

Solução: 1. Eu arquivei o aplicativo com Debug Developer Profile no xcode para o dispositivo. 2. Vá para Janela -> Organizador -> para ver toda a lista de arquivos 3. Agora selecione o arquivo que deseja exportar e abra-o no localizador 4. Clique com o botão direito e mostre o conteúdo do pacote 5. Vá para a pasta Produtos / Aplicativos Você verá o arquivo .app.

Use isso em vez do ipa.

Certifique-se de que o dispositivo já foi adicionado ao portal do desenvolvedor e de que todos os certificados estão instalados nele para que as etapas acima funcionem.

Assim que isso estiver no lugar. Além disso, certifique-se de obter o ios-webkit-debug-proxy no link abaixo:

https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/ios-webkit-debug-proxy.md

Além disso, habilite as ferramentas do desenvolvedor na configuração do dispositivo. Além disso, certifique-se de que o safari webinspector (safari -> Desenvolver) -> Inspetor esteja ativado Espero que ajude :-)

NOTA: Quando quiser que o appium instale o aplicativo no dispositivo para você, não forneça o ID do pacote.


O arquivo do aplicativo está em Produtos -> Aplicativos em Conteúdo do pacote
swathy valluri

0

Consegui resolver esse problema em minha máquina fazendo o seguinte:

  • Gere um novo Perfil de Provisionamento de Desenvolvedor com o seu dispositivo na lista ou pelo menos certifique-se de que sua máquina esteja na lista do dispositivo do perfil.
  • Em Configurações do projeto -> Assinatura de código -> Perfil de provisionamento -> Depurar: Defina o perfil recém-criado.
  • Em Configurações de destinos -> Assinatura de código -> Perfil de provisionamento -> Depurar E Liberar: Defina o perfil recém-criado.

Espero que ajude.


0

Percebi o que significa "pelo menos um alvo não foi lançado". Parece que ambos os esquemas de desenvolvimento e liberação (se você tiver um esquema de depuração e um esquema de liberação) devem ter uma identidade de desenvolvimento.

Eu tinha o esquema de depuração selecionado ao executar o profiler e a mensagem na parte superior do XCode dizia "Executando depuração". No entanto, parece que isso não é suficiente.

Mudei minha identidade de assinatura de código do esquema de liberação para ser igual ao esquema de depuração (e também o perfil de provisionamento) e o problema foi embora.


0

ele funciona .. quando eu mudei meu esquema de perfil para modo de depuração e também me certifiquei, build configs tem certificado de desenvolvedor nele. obrigado


0

Nenhuma das outras soluções aqui corrigiu meu problema, mas eu determinei que era apenas um problema para mim no simulador. O dispositivo funciona bem. Talvez haja um problema com o simulador.


0

Eu encontrei esse problema com o Xcode 9.1 para simuladores e dispositivos, e meu esquema de execução já estava definido como criação de perfil com "Debug". Finalmente achei esta discussão do fórum da Apple muito útil e resolvi o problema. Resumindo, a solução que funcionou para mim é ... Reinicie o Mac.

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.