Aplicativo para iOS 'O aplicativo não pôde ser verificado' apenas em um dispositivo

235

Eu tenho dois dispositivos iphone (4s e 5) conectados ao meu computador e estou tentando instalar um aplicativo nos dois dispositivos. Ele é instalado muito bem no iphone 5, mas gera um erro ' The application could not be verified.' quando tentou instalar no dispositivo iphone 4s.

Os UDIDs de ambos os dispositivos foram adicionados ao perfil de provisionamento gerado para o aplicativo.

Além disso, para adicionar uma observação, eu atualizei minha versão do iphone para 8.1.3 no meu dispositivo 4s. Não sei se o erro tem algo a ver com isso.

Qualquer ajuda sobre isso seria muito apreciada. Estou preso nisso há algum tempo.

EDITAR:

Acabei de conectar isso a outro dispositivo iPhone e o problema parece estar lá novamente. Basicamente, isso significa que o aplicativo, por algum motivo, é instalado apenas no telefone que uso há algum tempo e não em qualquer outro telefone. Mais uma vez, tenho certeza de que o perfil de provisionamento contém os UDIDs de todos esses três dispositivos.

Sunil
fonte

Respostas:

479

Eu tive algo parecido comigo recentemente. Atualizei o iPhone para 8.1.3 e comecei a receber a mensagem de erro 'aplicativo não pôde ser verificado' do Xcode em um aplicativo instalado corretamente no mesmo dispositivo iOS no mesmo Mac há alguns dias.

Excluí o aplicativo do dispositivo, reiniciei o Xcode e o aplicativo instalado posteriormente no dispositivo sem problemas, sem nenhuma mensagem de erro. Não tenho certeza se a exclusão do aplicativo foi a correção ou o problema ocorreu devido à "fase da lua".

hotpaw2
fonte
Não tenho meu aplicativo no telefone para desinstalar e experimentar :) Esta é minha primeira tentativa de instalação neste dispositivo.
Sunil
Obrigado! Eu estive torcendo minha cabeça tentando descobrir por que isso não estava funcionando no simulador. Desejo que a Apple permita o desenvolvimento completo usando o simulador para todas as operações.
Christopher Wade Cantley
Há também um relatório de que a exclusão e a reinstalação de um aplicativo de teste de desenvolvedor permitiu que outros aplicativos de teste de desenvolvedor (não excluídos) fossem reinstalados no Xcode sem a mensagem de erro.
hotpaw2
Um palpite aleatório é que qualquer instalação antiga do aplicativo está deixando algo (não documentado pela Apple) para trás, que uma soma de verificação 8.1+ ou método de assinatura de código mais recente não gosta, portanto, ela acha que a nova instalação está corrompida. A exclusão do (s) aplicativo (s) antigo (s) se livra do que foi deixado para trás.
hotpaw2
2
O aplicativo não foi instalado. Como você pode removê-lo? Como isso pode ser considerado uma resposta válida?
BTRUE
116

Como noto O aplicativo não pôde ser verificado. aumentar porque no seu dispositivo já existe um aplicativo instalado com o mesmo identificador de pacote.

Eu entendi esse problema porque no meu dispositivo existe o meu aplicativo que é baixado da App Store. e eu testo sua versão de atualização do Xcode. E eu usei o mesmo identificador que é o aplicativo ao vivo e meu aplicativo de teste de desenvolvimento. Então, acabei de remover o aplicativo Live da loja de aplicativos do meu dispositivo e esse erro será corrigido.

Nitin Gohel
fonte
2
Obrigado! No meu caso, baixei o aplicativo da Apple Store, mas depois quis construí-lo a partir da fonte e do perfil no dispositivo.
Valentin Simonov
1
Isso funcionou para mim .. tive que excluir o aplicativo que já estava instalado.
sach
9
Sim, isso funcionou para mim também. Sério, isso me irrita muito. Todos os anos, a Apple anuncia com orgulho o quão maravilhosa é sua última versão do Xcode, mas ainda produz as mensagens mais inusitadas de qualquer ambiente de desenvolvimento. "O aplicativo não pôde ser verificado." Como diabos está essa frase vinculada a "Você já tem uma versão da App Store deste aplicativo instalada no seu dispositivo". Sem esperança. Grrrr ...
Mike Gledhill
Sim, o meu foi corrigido excluindo uma compilação anterior do telefone. As mensagens do xcode são uma porcaria.
Randy L
2
Excluí-lo não ajuda a testar o caminho 'upgrade de aplicativo
bandeja paisa
55

basta excluir o aplicativo e tentar novamente; isso acontece comigo quando tento iniciar em um dispositivo que possui o mesmo aplicativo, mas gerado por um arquivo ipa.

Jorge Balleza
fonte
sim, acabei de excluir o aplicativo e funciona bem para mim também, obrigado.
raduken
3
Mas e se o usuário quiser atualizar o aplicativo?
Ahmed
25

Você provavelmente usou a opção "Corrigir problema" no Xcode ao conectar um novo dispositivo. Pergunta antiga, mas acredito que esta é a resposta real a POR QUE isso está acontecendo. Quando você instala um aplicativo em um dispositivo, ele é assinado com um perfil de provisionamento de desenvolvimento específico. Se, por exemplo, você conectar outro dispositivo que não esteja registrado em sua conta de desenvolvedor, o Xcode solicitará que você "corrija o problema". Quando você pressiona a adição do dispositivo e outro perfil de provisionamento é criado / modificado. Se você tentar sobrescrever um aplicativo existente, receberá esse erro. Excluir o aplicativo e reinstalá-lo funciona desde que o perfil foi alterado. Acho que isso geralmente acontece quando uma equipe é configurada e um membro é conectado a um novo dispositivo, e o Xcode "corrige" o problema.

Mark McCorkle
fonte
1
nem sempre está relacionado a novos dispositivos, também pode ocorrer se você alternar a "Equipe" na seção Geral> Identidade do Xcode. Embora o prompt "Corrigir problema" tenha sido exibido para mim, eu usei esse telefone antes com minha conta de desenvolvedor, portanto deve ter sido a alteração da conta de desenvolvedor no meu caso.
whyoz
Isso pode acontecer se o direito "Compartilhamento de chaves" estiver ativado.
Kof
Aconteceu comigo depois de ativar o iCloud no Capabilities. Um "problema de correção" relacionado criou uma nova autorização, que poderia ser a causa exata. Excluir e reinstalar o aplicativo ajudou.
Greg
9

Pode ter descoberto ... A exclusão do aplicativo do dispositivo funcionou para mim, como outros mencionados anteriormente (obrigado!).

Acho que o motivo é que o aplicativo no dispositivo foi realmente assinado com um perfil de provisionamento separado, especificamente um perfil de distribuição no meu caso.

Morieris
fonte
7

Para outras pessoas que não usam o RubyMotion e não acham que a exclusão do aplicativo é aceitável (como em, você deseja fazer testes de atualização). Confira a parte inferior desses documentos da Apple:

https://developer.apple.com/library/ios/technotes/tn2319/_index.html

Parece que eles mudaram alguma coisa no 8.1.3 para verificar esta nova regra.

O conserto

"[Adicione] o valor do identificador de aplicativo do aplicativo instalado, conforme registrado nos parênteses, ao valor da matriz da autorização dos identificadores de aplicativos anteriores para o aplicativo que está sendo instalado (resignando-o ou reconstruindo-o) e solicitando novos perfis de provisionamento especiais como mostrado abaixo."

<key>previous-application-identifiers</key>
<array>
    <string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>

EDITAR:

Para fazer isso, você precisa de perfis de provisionamento especiais. Você pode solicitá-las à Apple: "Para ativar a assinatura com o direito de identificador de aplicativo anterior, são necessários novos perfis de provisionamento especiais que podem ser obtidos acessando a página Fale conosco e solicitando-os". (dos documentos vinculados acima).

plivesey
fonte
Essa resposta deve ser aceita, pois excluir um aplicativo não é realmente uma solução, mas uma solução alternativa.
Lukasz #
você pode explicar resumidamente onde precisamos mudar? Estou tendo o mesmo problema.
Maulik 25/05
Não sou especialista nisso, mas acho que é apenas um novo recurso de segurança que a Apple adicionou ao sistema operacional. Faz sentido que você não consiga substituir um aplicativo por um ID de pacote diferente, mas eles perceberam que seria necessário para o teste, por isso incluímos essa solução alternativa. Infelizmente, uma vez que envolve contato com a Apple, eu não acho que a solução é boa o suficiente da maçã ...
plivesey
Da nossa perspectiva, é basicamente apenas mais um requisito para o teste de atualização.
plivesey
@plivesey Também era crucial para mim fazer isso sem excluir o aplicativo (muitos dados de teste valiosos, etc ...) e encontrei uma solução ainda mais simples: stackoverflow.com/a/30617406/229229
Lukasz
6

Eu enfrentei muito esse problema. Não tenho certeza se esse é o problema, mas acho que, quando o xCode viu que há um aplicativo com o mesmo identificador de pacote que o aplicativo, estou tentando instalar, ele não me permitiu. Então, eu tive que excluir o anterior e tentei instalar e funcionou. No entanto, às vezes, para fins de teste, eu precisava de várias versões do mesmo aplicativo e, nesse caso, alterava o identificador de pacote e tentava instalar. Funciona apenas se, estou usando um perfil de provisionamento de curinga.

Natasha
fonte
Sim, normalmente acontece após a adição de um direito
brainray
4

Tive o mesmo problema no meu iPad executando o 8.1.3. A exclusão do aplicativo e a instalação novamente corrigiram o problema. Uso dois perfis de provisionamento diferentes em duas máquinas diferentes e isso pode ter causado esse problema.

Krishnaprasad Jagadish
fonte
3

Solução funcional e testada, que não requer exclusão de aplicativo:

Parece que o Perfil de provisionamento de distribuição da AppStore ou apenas o certificado de distribuição do iOS têm permissões especiais e o problema "Não foi possível verificar ..." não se aplica a eles. Eles sempre substituirão o certificado anterior .

Em outras palavras: a versão AppStore será instalada com êxito, mesmo se o aplicativo já instalado (teste, adhoc ou corporativo) tiver sido assinado pelo certificado de uma equipe diferente.

Se você tiver sorte e já tiver feito o upload de um aplicativo para a conta da AppStore pertencente à mesma equipe do certificado com o qual tem um problema - as coisas são muito simples: basta baixar e instalar o aplicativo na AppStore.

Quando instalado - o certificado do aplicativo será o mesmo que você deseja testar e o problema desaparece.

Se o seu aplicativo ainda não estiver na AppStore - o iTunesConnect beta vem em socorro :

Isenção de responsabilidade : eu não testei isso, mas como a certificação prévia é a mesma da versão da AppStore, aposto que funciona:

  1. Arquive seu aplicativo com o perfil de aprovisionamento da AppStore (certificado iOS Distribution) e faça o upload no iTunesConnect (na conta pertencente à mesma equipe de desenvolvedores incluída no perfil de aprovisionamento que você não deseja executar).
  2. Convide uma pessoa com o dispositivo em que deseja executar (você mesmo?) Para o teste beta.
  3. Baixe e instale o aplicativo no iTunes connect beta.
  4. Agora você pode instalar sua versão de teste.
Lukasz
fonte
3

Não foi possível verificar o aplicativo ", no seu dispositivo já pode haver um aplicativo instalado com o mesmo identificador de pacote.

Solução tão simples Basta excluir o aplicativo e tente novamente .. ....

Aks
fonte
2

Resposta TL; DR - Não há solução real além de "excluir aplicativo e reinstalar".

Esta resposta não é satisfatória para muitas situações, quando você possui um banco de dados existente que não precisa ser excluído no aplicativo.

Lukasz e plivesey são os únicos com soluções que não exigem exclusão, mas que não funcionaram para mim.

user1021430
fonte
1

Resolvi esse problema alterando o sistema de compilação para legado no xcode.

Eu tive o mesmo problema, mas as soluções mencionadas acima não funcionaram para mim. Mesmo que eu não tivesse nenhum aplicativo anterior no dispositivo, recebi esse erro ao implantar no meu dispositivo.

Como fazer:

Simplesmente, vá ao menu Arquivo> Configurações do projeto, em Compartilhar configurações do projeto, altere o Build System de "New Build System (padrão)" para "Lagacy Build System".

mehdi
fonte
0

Eu também encontrei o mesmo problema. A exclusão do aplicativo não funcionou, mas quando tentei excluir outro aplicativo que era o atual 'pai' (copiei todo o projeto do aplicativo anterior, modifiquei alguns URLs e imagens, cliquei em 'Executar' e vi o infeliz caixa de diálogo 'não foi possível verificar'). Parece que o problema está relacionado ao provisionamento e assinatura de código e / ou algumas configurações do projeto. Muito complicado.

arco longo
fonte
0

Eu havia mudado a equipe, mas esqueci de alterá-la no meu alvo de testes, de modo que isso causou isso. Talvez isso ajude alguém.

akcoban
fonte