iOS 8-ne peut pas installer L'application D'entreprise
notre société dispose d'une application qui peut être téléchargée sur un site Web en utilisant Enterprise Distribution.
Dans iOS 8 Bêta 5, en appuyant sur le lien de téléchargement apporte attendus pop-up "(site web) que vous souhaitez installer (Nom de l'Application)". En appuyant sur 'install' sur cette boîte de dialogue, l'application est bloquée "en attente"..."
Jusqu'à ce qu'il finisse indique: "Impossible de Télécharger l'Application (nom de l'application) n'a pas pu être téléchargé à cette époque."
installation des travaux comme prévu en utilisant iOS 7.
lancer l'application de Xcode sous iOS 8 fonctionne.
comment soutenir Enterprise Distribution iOS 8?
peut-être qu'un changement doit être apporté au fichier du Manifeste? Quand j'ai essayé de construire l'application dans Xcode 6 Beta 7, le Processus d'archivage d'entreprise ne m'a pas incité à faire un dossier de manifeste...
15 réponses
en regardant à travers la console du whist téléphonique essayant d'installer une de mes applications, j'ai découvert:
Sep 9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep 9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)
raisons à mon insu, apple a invalidé la moitié de mes profils et n'a pas réussi à m'alerter. Après être entré developer.apple.com trouver des profils invalides:
Hit Edit
- > Generate
-> Download
Reconstruire l'application avec le nouveau profil.
cependant - les mauvaises nouvelles encore à au moins une de mes applications ne s'installe pas. Regarder à travers la console ne me donne rien. Je suis convaincu que c'est un bug apple ont donc déposé un radar: 17622725
j'espère que votre problème est un problème de profil sinon nous pourrions avoir à attendre JUSQU'à ce soir 1800GMT pour voir si apple l'ont corrigé.
EDIT
avec iOS8 GM - je viens d'obtenir Waiting...
- je vous tiendrai informé de l'état d'avancement du rapport de bogue.
EDIT
après dépannage, quelques corrections ont été trouvées:
Fix 1
à partir de iOS8, si les images auxquelles vous faites référence dans le manifeste plist n'existent pas - Apple n'installera pas l'application sur le téléphone - le manifeste étant le fichier vers lequel vous faites le lien sur la page de téléchargement: itms-services://?action=download-manifest&url={url}
assurez-vous que full-size-image
et display-image
existe:
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
solution 2
les applications D'entreprise ne s'installeront pas si elles existaient déjà sur iOS7 en raison d'un bug avec iOS8. Une erreur apparaît dans la console:
Ignore manifest download, already have bundleID: {bundle_id}
cela peut être corrigé en changeant temporairement le bundleID
dans le fichier de manifestes, mais apple est au courant car ils ont marqué le rapport de bogue comme dupliqué. Après des tests internes, vous pouvez également résoudre le problème en repos de la disposition de l'écran d'accueil General -> Reset -> Reset Home Screen Layout
Fix 3
si vous voyez l'application entrer dans le installing...
étape par opposition à loading...
presque certainement le problème est le embedded provisioning profile
a expiré, pour corriger le téléchargement, vous aurez besoin de Ré-archiver votre application avec un nouveau profil de provision mis à jour.
Fix 4
si vous voir l'application accéder à l'étape installing...
et votre provisioning profile
est valide - téléchargez l'application pendant qu'elle est attachée à votre console. (Xcode 6 > Window > Devices > Bottom Left Button [v]), vous trouverez probablement que l'installation a échoué avec Verification Stage Failed
un peu plus bas sera le message d'erreur. Dans mon cas (Entitlements found that are not permitted by provisioning profile)
- pour cette erreur goto developer.apple.com et mettez à jour votre identifiant D'application pour inclure le service correct. Pour moi, App Groups
devait être activé. Puis régénérez votre provisioning profile
j'ai eu le même problème aujourd'hui: je n'ai pas pu installer une de mes applications D'entreprise sur IOs8 (mais sur IOs7). Après de nombreuses heures de recherche, j'ai finalement lu ce message sur la console de l'appareil:
<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk
après une longue période de recherche, j'ai enfin lu ce post : http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate-manually-etc
et à la fin je viens de changer le nom de la plist et le lien pour télécharger l'ipa (probablement le deuxième n'est pas nécessaire), et enfin l'application est installée.
enfin, il semble que c'était un problème de Cache dans IOs8 qui considère que l'application était déjà installée (et ce n'était pas le cas, je l'ai désinstallé auparavant).
Espérons que cette aide
même erreur ici, j'ai essayé de changer bundle-id, bundle-version, plist... mais l'erreur reste.
je sais que c'est un peu compliqué, mais c'est la seule chose qui fonctionne pour moi:
- connecter L'appareil à un Mac ou un PC
-
créer une sauvegarde dans iTunes
-
Install iExplorer: http://www.macroplant.com/iexplorer/
-
Démarrer iExplorer, puis sélectionner le mode démo
-
dans la barre latérale gauche, sélectionnez médias, puis ouvrez le dossier Téléchargements, et supprimer tous les fichiers dans elle
-
redémarrer le dispositif
-
ouvrez la page de téléchargement et installez la dernière version de votre application
en effet, j'Omets les deux premiers pas et cela fonctionne parfaitement:)
j'espère que cette aide
fixer un objectif de déploiement plus bas dans
Projet > Construire Réglage > iOS Cible de Déploiement
Cibles > Paramètre de construction > iOS Cible de Déploiement
je viens d'avoir ce problème en ce moment et il a été causé par le plist mainfest (touches: full-size-image + display-image) pointent vers des emplacements d'image url qui n'existent pas.
Il semble que l'iOS6/iOS7 sont en mesure de gérer si les images n'existent pas, mais iOS8 est plus restrictive à ce sujet.
basé sur les commentaires précédents sur le message" ignore manifest download", nous avons essayé de changer le bundle ID (ie com.nom de la société.AppName) dans le .plist pour avoir un nom unique, à force d'iOS 8 à télécharger/installer de toute façon. Une fois installé, il remplace correctement la copie existante.
je crois qu'il y a deux problèmes ici. Si l' .affiche sur le site https pointant vers le certificat d'entreprise signé .le fichier ipa a un identificateur de faisceau correspondant à un application qui est déjà installé, il ne va pas l'écraser. La version bundle est différente sur tous nos .donc il devrait l'installer de toute façon. iOS 7 ne semble pas avoir ce problème. Nous avons l'intention de résoudre ce problème en brouillant l'identifiant du paquet dans le plist afin qu'il soit toujours unique à la construction.
le deuxième problème est que quand il installe avec succès l'application, il ne passe pas à l'écran d'accueil ou indiquer qu'il fait quoi que ce soit. In iOS 7, après avoir sélectionné le bouton "Installer" à l'invite, passer à l'écran D'accueil où l'icône serait sombre, et un indicateur de progrès affichera la progression du téléchargement. La demande aurait alors un point bleu à côté indiquant qu'elle était nouvelle. Avec iOS 8, il ne passe pas à L'écran D'accueil donc il semble ne pas fonctionner. Vous pouvez aller manuellement sur l'écran d'accueil, et vous devriez voir un sombre icône avec un indicateur de progression (maintenant à un nouvel emplacement, car il ne sait pas qu'il sera remplaçant une application existante). Après qu'il télécharge/installe avec succès, il ne place pas le point bleu sur l'application remplacée.
Espérons que cette aide.
cela m'a causé une énorme douleur. J'avais besoin d'installer un nouvel App OTA sur juste les téléphones des employés à l'extérieur d'une solution MDM. J'ai essayé toutes les solutions possibles que j'ai pu trouver sur internet et rien n'a fonctionné. Le plus proche que j'ai pu obtenir était pour l'application d'obtenir à l'étape de "chargement". Ma solution a pris une semaine de travail, essayant différentes choses. Je ne sais pas qui a fonctionné dans quel ordre et qui aurait fonctionné de toute façon, Mais voici ce que j'ai fait:
dans mon cas, j'ai eu auparavant, construit cette application avec un profil de configuration à partir d'un développeur (par opposition à une Entreprise). Dans Xcode, j'ai changé L'identifiant du paquet pour lui donner un nouveau nom, par exemple, il était à l'origine com.mydomain.myapp et est devenu com.mydomain.mysuperapp.
veillait à ce que la signature du code dans l'application soit valide et incluait le certificat de distribution pour le compte D'entreprise
j'avais utilisé le mauvais profil d'approvisionnement (un sans identités associés) donc, parce que j'ai choisi "automatique", il construit bien, mais n'a jamais été installer. Ainsi, j'ai changé la signature de code pour la publication à mon profil de distribution (plutôt que le profil de développement)
S'est assuré que l'application était réglée avec une cible de déploiement suffisamment basse pour les appareils qui vont la télécharger""
Archivé le fichier et exporté pour le déploiement en Entreprise
Le Manifestedoit contenir l'image PNG 57x57 et l'image png 512x512. sinon, l'installation ne passe pas le stade de "l'attente
j'ai créé un index.fichier html qui ressemblait à ceci:
<html>
<body>
<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
Install Learning Chunks App from Dropbox</a>
</body>
</html>
j'avais utilisé un échantillon de plist que j'ai trouvé en ligne et il comprenait quelques paramètres optionnels. Quand j'ai laissé ça, le téléchargement n'a pas marché. J'ai pris ces. Mon fichier manifeste s'appelait MyApp.plist et ressemblait à ceci:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mydomain.mysuperapp</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>My Super App</string>
<key>subtitle</key>
<string>My Super App</string>
</dict>
</dict>
</array>
</dict>
</plist>
j'ai téléchargé le MyApp.plist, index.html, logo57.png, logo512.png et MyApp.ipa à DropBox. J'ai partagé l'index.html avec ceux qui ont besoin de télécharger l'application.
L'utilisateur peut alors cliquer sur le lien de partage dans l'e-mail et l'application d'installation.
EDIT: le problème ci-dessous est une diversion. Comme Dylan Hand mentionné ci-dessus, le problème pour moi était que j'avais cassé des liens d'image dans le fichier manifeste. Apparemment cela n'avait pas d'importance pour ios7 mais ios8 ne terminera pas l'installation si c'est vrai. Quand j'ai enlevé ces références, ça a fonctionné parfaitement.
j'ai le même ensemble de symptômes que l'OP (ie. Message "Impossible de télécharger app" mais seulement sur iOS 8). Quand j'essaie de valider (c.-À-D. Organisateur - > Validate), je reçois le message suivant.
cela m'a conduit à ce poste: https://stackoverflow.com/a/25757196/751136
il prétend que la ré-génération de vos profils de provisionnement devrait entraîner un nouveau droit appelé beta-reports-active
. Quand j'essaie de le faire dans mon compte d'entreprise, les nouveaux profils N'ont PAS le nouveau droit. Cependant, quand je me régénère profils d'approvisionnement dans un autre compte non-entreprise, les nouveaux profils ont ce champ.
si vous construisez vos applications iOS avec un script de construction et que vous utilisiez précédemment PackageApplication avec l'option --sign, cela peut causer des problèmes. Le drapeau --sign ne fonctionne plus lorsqu'on construit sur 10.10 et qu'on le supprime, toutes nos Applications iOS s'installent de nouveau.
ce numéro me rendait fou, Seulement cela a aidé pour la Distribution D'entreprise: Effectuer tous les paramètres de construction et cliquez sur "Archives". Effectuer le processus de Distribution D'entreprise. Vous serez montré Organisateur fenêtre. Sur Mac machine localisez le .xcacrchive en sélectionnant KRelease et en choisissant "Show in finder".
L'utilisateur est dirigé vers le dossier où le .le fichier xcarchive est localisé. Cliquez-droit sur le .XCARCHIVE et sélectionnez " Afficher le contenu du paquet" option.
dans la fenêtre ouverte finder aller à Produits / Applications Sélectionnez et copiez le .application fichier
créez un nouveau dossier quelque part sur votre disque avec le nom" Payload " Note: le nom du dossier est sensible à la casse. Copiez le .application fichier en "Charge utile" du dossier. Compresse le dossier de la charge utile pour obtenir la charge utile.fichier zip Renommer la charge utile.fichier zip .ipa et mettez-le avec votre .plist Fait !!! le. ipa fichier est prêt à être installé sur les périphériques enregistrés dans le profil de configuration utilisé dans le .génération xcarchive.
j'ai sovlé ce problème.
- comme Apple a changé les profils de provisionnement, veuillez renouveler les profils de provisionnement (fichier 1) et les copier dans la"charge utile/".
- assurez-vous qu'il y a des droits.plist (Fichier 2) dans la "charge utile/", et ce fichier plist doit être texte simple qui est créé par un éditeur de texte.
- assurez-vous qu'il y a une Info.plist (Fichier 3) dans "Charge utile/", et c'est créé par XCode;
- copier les droits.plist (Fiche 4) n'importe où d'autre, sauf la "Charge utile/".
- assurez-vous que" Bundle identifier " dans le fichier 1-4 doit être le même.
- utilisez ce droit.plist (Fiche 4) de Signer à nouveau le fichier IPA.
Vous pouvez démissionner comme ça
codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app
Droits.échantillon de plaquette
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>PREFIX.yourappBundleID</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PREFIX.yourappBundleID</string>
</array>
</dict>
</plist>
si vous connaissez le Chinois, ceci sera utile.
ces réponses sont des choses valables à vérifier, mais dans le cas où quelqu'un d'autre les a essayées comme je l'ai fait et avait encore des problèmes, assurez-vous que votre application contient le bon réglage de plist qui permet à l'archive exportée d'être compressée correctement . ce est ce qui nous a mordu, même après avoir suivi toutes les étapes ci-dessus. De plus, la réponse qui parle de s'assurer que la liste du site web contient des liens d'image valides ne semble pas affecter quoi que ce soit, au moins pour nous utiliser Xcode 6.3 pour exporter des archives. Il a travaillé/ne fonctionne pas indépendamment de ces liens. C'est évidemment une bonne idée d'avoir cette info correcte. Une autre note intéressante est que si nous avons exporté en utilisant XCode 5, les ipa étaient toujours dans le bon format (voir l'article lié SO ci-dessus); il semble que XCode 6+ est maintenant difficile à ce sujet.
mon problème a été corrigé en enlevant tout construit outut, puis reconstruire complètement.
une autre source possible de ce problème d'installation est l'inadéquation entre le projet et le profil d'approvisionnement (particulièrement probable avec des constructions automatisées ou d'Autres constructions en ligne de commande). Les identifiants du paquet sont sensibles à la casse. Par exemple, si l'identificateur du forfait app dans le profil d'approvisionnement est com.example.MyApp
et la configuration du projet et/ou des informations.plist utilise com.Example.Myapp
, Xcode 7.1 échouera avec une erreur de signature de code ou retombera sur un profil générique d'approvisionnement (un avec * bundle id, qui pourrait lui-même être un problème) mais la commande xcodebuild
réussira. Jenkins va également télécharger le build signé par erreur sur Hockeyapp par exemple. La compilation se téléchargera vers les périphériques clients mais ne s'installera pas en raison de l'inadéquation de la casse.
donc,
Fix 0
vérifier que l'identifiant du paquet d'applications est configuré de la même manière dans le projet et sur Apple Developer portal.
la façon la plus simple d'éviter ce problème particulier est de toujours utiliser des caractères minuscules dans vos identificateurs de paquets. Copier l'id de paquet de Apple Developer portal et le coller dans les paramètres de construction du projet ( PRODUCT_BUNDLE_IDENTIFIER
) aide aussi bien sûr.
bien que j'ai eu le problème avec un compte d'entreprise, il pourrait en fait ne pas être spécifique à ce type de distribution.
Fix 0
assurez-vous de vérifier Note technique d'Apple intitulée Installation Failure dépannage for iOS .
mon problème était que j'avais un espace à la fois dans mon nom de fichier ipa, et la référence à cet ipa dans mon plist. Supprimer l'espace dans les deux permis l'installation