Tenho um aplicativo empresarial que estou distribuindo por meio de um itms
URL:
itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist
No iOS 7, os downloads e as atualizações funcionam bem. No iOS 8, no entanto, recebo o erro:
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp
No meu plist, eu tenho
<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>
e no meu aplicativo no iOS 8, estou executando a versão 0.2.1
ios
xcode
ios8
enterprise-distribution
Patrick Perini
fonte
fonte
Respostas:
Também encontrei esse problema com a distribuição de nosso aplicativo. Conseguimos corrigir esse problema 'falsificando' o identificador de pacote dentro do .plist usando para distribuição de download, mantendo o mesmo identificador de pacote ipa.
Por exemplo, em seu plist:
altere com.mycom.MyApp para com.mycom.MyApp.ios8fix
O aplicativo será instalado usando um novo ícone de aplicativo, que desaparecerá após a instalação.
Se você já instalou o aplicativo, verá um novo ícone do aplicativo durante a instalação. Após a instalação, este ícone desaparece, mas sua versão já existente do aplicativo será atualizada. Com uma instalação limpa, o ícone de instalação desaparecerá e o ícone do aplicativo instalado aparecerá no lugar.
Parece que o iOS 8 está armazenando em cache os identificadores de pacote e compara as instalações solicitadas com essas instalações em cache. Na maioria das vezes, você verá apenas um pop-up solicitando a instalação, mas nada acontece.
Como Sean já notou, isso aparece com o xCode 6 GM e a versão oficial do iOS 8. Dispositivos que nunca instalaram seu aplicativo antes não terão problemas para instalar o aplicativo.
fonte
Isso funcionou melhor para mim, sem necessidade de mexer no seu manifesto ou outro truque (perfeito para o servidor Xcode onde o
plist
é gerado automaticamente):Isso redefine os caches do dispositivo, agora você pode instalar seu aplicativo normalmente.
fonte
Eu estou tendo o mesmo problema. Eu o reproduzi por:
1) Ter meu aplicativo instalado durante a atualização do iOS 7 para o iOS 8 GM
2) Removendo no iOS 8
3) Tentando instalá-lo via itms-services: com o mesmo nome de pacote
Quando tentei alterar o identificador de pacote no plist do servidor (não nos aplicativos Info.plist), funcionou (o aplicativo foi baixado e não permaneceu nenhum ícone de "sombra"). Mas parece um inseto da maçã.
fonte
A solução aceita não funciona mais no iOS9.
Meu entendimento é que a Apple fechou uma brecha séria na segurança do iOS, impedindo que binários adhoc substituíssem aplicativos de estoque ou aplicativos baixados da App Store. Consulte este artigo para obter os antecedentes (CVE-2015-3722 / 3725 e CVE-2015-3725):
https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html
Considerando as implicações de segurança, eu não esperaria que esse comportamento mudasse nas versões futuras do IOS. As opções alternativas parecem ser:
fonte
O que Gil disse parece estar correto, mas, mais especificamente, descobri que também precisava incrementar a string de versão do pacote no server.plist:
Isso pelo menos permite que você realize uma instalação OTA.
(Desculpe ... Teria adicionado comentários, mas sou muito n00b.)
fonte
Dê uma olhada nesta resposta e nesta resposta .
Você pode corrigir esse problema sem qualquer hacks, para iOS8 você deve incluir na
assets
chave do.plist
arquivo de manifesto odisplay-image
efull-size-image
chaves . Eles estavam disponíveis no Xcode 5 ao salvar um arquivo para implantação corporativa e add-hoc, mas não eram necessários.Eu criei uma essência no github com o modelo para o arquivo install-manifet.plist .
fonte
Este é um bug encontrado pela primeira vez no iOS8 Beta5. E ainda não foi corrigido pela Apple na semente GM e na versão oficial iOS8.0. Mais discussões podem ser encontradas aqui
A solução alternativa atual sendo testada por mim:
fonte
Problema resolvido alterando o identificador do pacote em plist.
Normalmente, depois de tocar no link itms, ele mostrará a área de trabalho que mostra o ícone de instalação. No entanto, para meu dispositivo iOS 8.0, após tocar no link itms, ele não mudará para a página de instalação, mas a instalação já está funcionando antes.
fonte
Isso é extremo, mas se você não pode alterar seu identificador de pacote, o que eu não podia, restaurar seu iPhone através do iTunes para o iOS 8 mais recente e restaurar de um backup corrige o problema.
fonte
O mesmo problema existe no iOS 10 beta 1.
Uma coisa que não entendi aqui é que a data é 31 de dezembro no log do dispositivo XCode, no entanto, o dispositivo tem data e hora corretas configuradas.
Atualização: O pessoal do HockeyApp notificou a Apple sobre esse problema durante a WWDC e a correção deve vir na próxima semente.
fonte
Se você construir seus aplicativos iOS com um script de construção e antes estava usando PackageApplication com o sinalizador --sign, isso pode estar causando problemas. O sinalizador --sign não funciona mais ao construir no 10.10 e removê-lo fez com que todos os nossos aplicativos iOS fossem instalados novamente.
consulte: https://devforums.apple.com/thread/251624?tstart=0
fonte
Certifique-se de ter acesso total à Internet.
Eu estava enfrentando o mesmo problema com a instalação OTA e IOS8. Como estou atrás de um proxy corporativo, as soluções acima não funcionaram até que eu defina as configurações manuais de proxy (não necessárias no IOS7) para resolver esse problema.
fonte
Acabei de encontrar esse problema em um dispositivo com 8.1, atualizar o dispositivo para 8.3 resolveu o problema. Portanto, ou o bug não está mais presente no 8.3 .... ou o ato de atualizar limpou os dados armazenados em cache de qualquer maneira.
fonte