J'ai une application d'entreprise que je distribue via une URL itms
:
itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist
Sur iOS 7, les téléchargements et les mises à jour fonctionnent correctement. Sur iOS 8, cependant, j'ai l'erreur:
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp
Dans mon plist, j'ai
<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>
et sur mon application sur iOS 8, j'utilise la version 0.2.1
J'ai également rencontré ce problème avec notre distribution d'applications. Nous avons pu résoudre ce problème en "simulant" l'identifiant de bundle à l'intérieur de la liste .plist à l'aide de la distribution de téléchargement, en conservant le même identifiant que notre bundle ipa.
Par exemple, dans votre plist:
<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>
remplacez com.mycom.MyApp par com.mycom.MyApp.ios8fix
L'application sera installée à l'aide d'une nouvelle icône d'application, qui disparaîtra après l'installation.
Si vous avez déjà installé l'application, vous verrez même une nouvelle icône d'application lors de l'installation. Après l'installation, cette icône disparaît, mais votre version existante de l'application sera mise à jour. Avec une nouvelle installation, l'icône d'installation disparaîtra et l'icône de l'application installée apparaîtra à la place.
Il semble qu'iOS 8 mette en cache les identifiants des ensembles et compare les installations demandées à celles mises en cache. La plupart du temps, vous ne verrez qu'un popup demandant l'installation, mais rien ne se passe.
Comme Sean l’a déjà remarqué, cela apparaît avec xCode 6 GM et la version officielle d’iOS 8). Les appareils qui n’ont jamais installé votre application n’auront aucun problème pour l’installer.
Cela a fonctionné mieux pour moi, pas besoin de toucher votre manifeste ou une autre supercherie (parfait pour Xcode Server où le plist
est généré automatiquement):
Cela réinitialise les caches de l'appareil, vous pouvez maintenant installer votre application comme d'habitude.
Je rencontre le même problème. Je l'ai reproduit par:
1) Avoir mon application installée lors de la mise à niveau d'iOS 7 à iOS 8 GM
2) Suppression dans iOS 8
3) Essayer de l'installer via itms-services: avec le même nom de paquet
Lorsque j'ai essayé de modifier l'identifiant de paquet dans la plist du serveur (pas dans les applications Info.plist), cela a fonctionné (l'application a été téléchargée et il ne reste aucune icône "shadow"). Mais cela ressemble à un bogue Apple.
La solution acceptée ne fonctionne plus sur iOS9.
D'après ce que j'ai compris, Apple a résolu un grave problème de sécurité iOS en empêchant les fichiers binaires adhoc de remplacer les applications stockées ou les applications téléchargées depuis l'App Store. Voir cet article à l'arrière-plan (CVE-2015-3722/3725 et CVE-2015-3725):
https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html
Compte tenu des implications en matière de sécurité, je ne m'attendrais pas à ce que ce comportement change à l'avenir IOS. Les autres options semblent être:
Jetez un oeil sur cette réponse et cette réponse .
Vous pouvez résoudre ce problème sans aucun piratage. Pour iOS8, vous devez inclure la clé assets
du manifeste .plist
file le display-image
et full-size-image
clés. Ils étaient disponibles dans Xcode 5 lors de la sauvegarde d'une archive pour l'entreprise et le déploiement add-hoc, mais n'étaient pas obligatoires.
J'ai créé un Gist sur github avec le modèle pour le fichier install-manifet.plist .
Ce que Gil a dit semble être correct, mais plus précisément, j'ai constaté que je devais également incrémenter la chaîne bundle-version dans le fichier server.plist:
<key>bundle-version</key>
<string>3.2.2</string>
Cela vous permet au moins d’effectuer une installation OTA.
(Désolé ... aurais ajouté aux commentaires, mais je suis trop n00b.)
Problème résolu en changeant l'identifiant de paquet dans la plist.
Normalement, après avoir cliqué sur le lien itms, le bureau qui affiche l'installation de l'icône s'affiche. Cependant, pour mon appareil iOS 8.0, après avoir cliqué sur le lien itms, il ne sera pas modifié pour la page d'installation, mais l'installation est déjà en retard.
C'est un bogue trouvé pour la première fois dans iOS8 Beta5. Et il n'était toujours pas corrigé par Apple dans GM version initiale et version officielle iOS8.0. Plus de discussions ont pu être trouvées ici
La solution de contournement actuelle testée par moi-même:
C'est extrême, mais si vous ne pouvez pas changer l'identifiant de votre bundle, ce que je ne pouvais pas, restaurer le dernier iOS 8 par iPhone via iTunes et le restaurer à partir d'une sauvegarde corrige le problème.
Le même problème existe sur iOS 10 beta 1.
31 déc. 19:01:32 itunesstored [98]: LoadExternalDownloadManifestOperation: Ignore le téléchargement du manifeste, dispose déjà de bundleID: com. **************. Ios avec phase: SSDownloadPhaseWaiting
Une chose que je ne comprends pas, c'est que la date est le 31 décembre dans le journal du périphérique XCode. Cependant, la date et l'heure du périphérique ont été configurées correctement.
Mise à jour: Les gars de HockeyApp ont notifié Apple) à propos de ce problème pendant WWDC et le correctif devrait entrer dans la graine suivante.
Assurez-vous d'avoir un accès complet à Internet.
Je faisais face au même problème avec l'installation de l'OTA et l'IOS8. Étant donné que je suis derrière un proxy d'entreprise, les solutions ci-dessus ne fonctionnaient pas tant que je n'avais pas défini de paramètres de proxy manuels (non requis dans IOS7) pour résoudre ce problème.
Je viens de rencontrer ce problème sur un périphérique exécutant la version 8.1, la mise à niveau du périphérique vers la version 8.3 a résolu le problème. Donc soit le bogue n'est plus présent dans la version 8.3 ..., soit l'acte de la mise à jour efface quand même les données en cache.
Si vous créez vos applications iOS avec un script de génération et que vous utilisiez précédemment PackageApplication avec l'indicateur --sign, cela peut être à l'origine de problèmes. Le drapeau --sign ne fonctionne plus lorsque vous compilez 10.10 et que le supprimer entraîne la réinstallation de toutes nos applications iOS.