317 votes

Le déploiement des applications d'entreprise ne fonctionne pas sur iOS 7.1

Nous distribuons les applications par le biais d'un compte Entreprise, à l'aide d'une itms-services:// URL. Cela a toujours bien fonctionné, mais après avoir installé la version bêta d'iOS 7.1 sur notre iPad, il refuse de s'installer. Au lieu de cela, nous obtenons simplement le message générique Cannot connect to example.com Le message que iOS affiche de manière peu utile lorsqu'il y a un problème quelconque de téléchargement de l'application.

Je n'ai rien trouvé ici sur SO, sur Google ou dans les notes de mise à jour de la version 7.1 pour suggérer ce qui pourrait causer le problème.

330voto

Mark Parnell Points 6554

J'ai trouvé le problème en connectant l'iPad à l'ordinateur et en visualisant la console via l'organisateur XCode tout en essayant d'installer l'application. L'erreur s'avère être :

Impossible de charger l'URL du manifeste non-https : http://example.com/manifest.plist

Il s'avère que dans iOS 7.1, l'URL de l'élément manifest.plist doit être HTTPS, alors que nous utilisions HTTP. La modification de l'URL en HTTPS a résolu le problème.

I.e.

itms-services://?action=download-manifest&url=http://example.com/manifest.plist

devient

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

Je suppose que vous devez avoir un certificat SSL valide pour le domaine en question. Nous l'avons déjà fait mais j'imagine que vous aurez des problèmes sans cela.

233voto

oldman Points 1439

Ingconti a raison.

  1. Téléchargez votre app.plist sur dropbox.
  2. Obtenez le lien partagé du fichier app.plist, par exemple https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. remplacer www.dropbox.com con dl.dropboxusercontent.com dans le lien, comme https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. Supprimez tout paramètre sur le lien partageable Dropbox tel que "?dl=0t" (selon Carlos Aguirre Tradeco à Le déploiement des applications d'entreprise ne fonctionne pas sur iOS 7.1 et ma propre expérience).
  5. Créer un download.html avec un lien formaté comme <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. Téléchargez votre download.html à la boîte de dépôt
  7. Encore une fois, obtenez un lien partagé de download.html, comme https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html et supprimez tous les paramètres.
  8. Remplacer www.dropbox.com con dl.dropboxusercontent.com dans le second lien également, comme https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

Maintenant, visitez https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html dans votre appareil, vous pouvez installer l'application comme avant.

QUEL MONDE MERVEILLEUX !

72voto

Mike Points 721

En complément de la réponse de Mark Parnell, un moyen rapide de contourner ce problème consiste à placer le manifest plist dans Dropbox, puis à utiliser l'interface Web de Dropbox pour obtenir un lien https direct vers celui-ci ('Share link' -> 'Get link' -> 'Download').

La véritable ipa peut rester là où vous l'avez toujours servie. Vous devrez coder l'URL de la liste avant de l'insérer dans la requête de l'URL itms-servivces (bien que le remplacement de tout &s par %3D puisse fonctionner).

L'inconvénient est que la boîte de dialogue d'installation affichera désormais "dl.dropbox.com veut installer [quoi que ce soit]".

36voto

Ralph Caraveo Points 3090

C'est vrai, à l'avenir, vous devrez effectuer tous les déploiements OTA via https à partir d'iOS7.1. Honte à Apple pour ne pas avoir documenté cela.

Pour ceux d'entre vous qui recherchent une meilleure solution interne que de s'en remettre à Dropbox ou d'avoir à débourser de l'argent pour un certificat, vous pouvez avoir une solution si vous suivez les étapes décrites dans le conseil n° 5 ici : http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

L'essentiel est le suivant :

  • Créez votre propre certificat d'autorité de certification que vous pouvez installer sur l'appareil et qui est entièrement fiable (je l'ai installé en l'envoyant simplement par courriel).
  • Créez la paire clé/cer contre le certificat racine et installez-la sur votre serveur.
  • Assurez-vous que votre serveur Web utilise la paire clé/cer qui correspond au certificat racine de l'autorité de certification.
  • À ce stade, vous devriez être en mesure d'installer vos applications comme d'habitude via https.
  • Tout ceci peut être accompli sur OSX en utilisant openssl qui est déjà installé par défaut.

Ce n'est pas la même chose que de faire un certificat auto-signé, dans cette solution vous agissez également comme votre propre autorité de certification privée. Si votre certificat racine installé sur votre appareil Apple n'est pas marqué comme étant de confiance (vert), il y a un problème. Recommencez.

Cela fonctionne parfaitement.

Mise à jour : 13/03/2014 - J'ai fourni un petit utilitaire en ligne de commande qui simplifie tout ce processus. Vous pouvez l'obtenir à l'adresse suivante : https://github.com/deckarep/EasyCert/releases

33voto

James Webster Points 16663

J'ai eu le même problème et bien que j'utilisais déjà un serveur SSL, le simple fait de changer les liens en https ne fonctionnait pas car il y avait un problème sous-jacent.

enter image description here Cliquez ici pour l'image

Ce passage souligné m'a dit que nous debe Vous avez la possibilité de faire confiance au certificat, mais comme il s'agit de la boutique d'applications, en passant par Safari, cette suggestion de récupération n'est pas présentée.


Je n'étais pas satisfait des solutions existantes parce que.. :

  • Certaines options nécessitent de dépendre d'un tiers (Dropbox).
  • Nous n'étions pas prêts à payer pour un certificat SSL.
    • Les certificats SSL gratuits ne sont qu'une solution temporaire.

J'ai finalement trouvé une solution en créant un Autorité de certification racine auto-signée et générer le certificat SSL de notre serveur en l'utilisant.

J'ai utilisé Keychain Access et OSX Server, mais il existe d'autres solutions valables pour chaque étape.


Création d'une autorité de certification

D'après ce que j'ai compris, les autorités de certification sont utilisées pour vérifier l'authenticité des certificats. Puisque nous sommes sur le point d'en créer un nous-mêmes, ce n'est pas exactement sécurisé mais cela signifie que vous pouvez faire confiance à tous les certificats d'une autorité donnée. Une liste de ces autorités est généralement incluse par défaut dans vos navigateurs, car elles sont en fait de confiance. (GeoTrust Global CA, Verisign etc.)

  • Ouvrez Keychain et utilisez l'assistant de certificat pour créer une autorité

enter image description here

  • Remplissez les informations relatives à votre autorité de certification

enter image description here

  • Je ne sais pas si c'est nécessaire, mais j'ai fait confiance à l'autorité.

enter image description here


Génération d'une demande de signature de certificat

Dans notre cas, les demandes de signature de certificat sont générées par l'administrateur du serveur. Il s'agit simplement d'un fichier qui demande "Puis-je avoir un certificat avec ces informations pour mon site s'il vous plaît".

  • Ensuite, vous devrez créer votre Demande de signature de certificat (J'ai utilisé le gestionnaire de certificats d'OSX Server pour cela).

enter image description here

  • Remplissez les informations de votre certificat (ne doit contenir que des caractères ascii !, merci @Jasper Blues)

enter image description here

  • Enregistrez le CSR généré quelque part

enter image description here


Création du certificat

En tant qu'autorité de certification, c'est à vous de décider si la personne qui vous a envoyé le CSR est authentique et ne se fait pas passer pour quelqu'un d'autre. Les autorités réelles ont leur propre façon de procéder, mais puisque vous êtes, je l'espère, sûr de votre identité, votre vérification devrait être tout aussi certaine :)

  • Revenez à Keychain Access et ouvrez l'option "Create A Certificate " comme indiqué ci-dessous.

enter image description here

  • Faites glisser votre CSR sauvegardé dans la case indiquée.

enter image description here

  • Cliquez sur le bouton "Let me override defaults for this request".

enter image description here

  • J'aime augmenter la période de validité.

enter image description here

  • Pour une raison quelconque, nous devons remplir à nouveau certaines informations.

enter image description here

  • Cliquez sur continuer sur cet écran

enter image description here

  • ASSUREZ-VOUS DE CLIQUER SUR L'AUTHENTIFICATION DU SERVEUR SSL. celui-ci m'a causé quelques maux de tête.

enter image description here

  • Vous pouvez cliquer sur continuer à travers le reste des options.

  • L'application Mail s'ouvre et vous permet d'envoyer le certificat. Au lieu d'envoyer le certificat par courrier électronique, faites un clic droit et enregistrez-le.

enter image description here


Installation du certificat

Nous devons maintenant configurer le serveur pour qu'il utilise le certificat que nous venons de créer pour son trafic SSL.

  • Si l'appareil sur lequel vous travaillez es votre serveur, vous constaterez peut-être que le certificat est déjà installé.

enter image description here

  • Si ce n'est pas le cas, double-cliquez sur le certificat en attente et faites glisser le fichier PEM que nous venons d'enregistrer depuis l'e-mail dans l'espace indiqué. (Alternativement, vous pouvez exporter votre PEM depuis le trousseau de clés si vous ne l'avez pas sauvegardé).

enter image description here

  • Mettez votre serveur à jour pour utiliser ce nouveau certificat. Si vous constatez que le nouveau certificat ne "colle" pas et qu'il continue à s'inverser, revenez à la partie de l'écran intitulée BOLD ITALIC CAPS

enter image description here


Configuration des dispositifs

Chaque appareil sur lequel vous devez installer des applications devra avoir une copie de cette autorité de certification afin qu'il sache qu'il peut faire confiance aux certificats SSL de cette autorité.

  • Retournez dans le Trousseau d'accès et exportez votre autorité de certification sous forme de fichier .cer.

enter image description here

  • Je place ensuite ce fichier sur mon serveur avec mes applications OTA, les utilisateurs peuvent cliquer sur ce lien et télécharger le certificat d'autorité. L'envoi du certificat par courrier électronique directement aux utilisateurs est également une option valable.

enter image description here

  • Installez le certificat sur votre appareil.

enter image description here


Test

  • Assurez-vous que vos liens plist sont https

    • Essayez d'installer une application ! Cela devrait maintenant fonctionner. L'autorité de certification est de confiance et le certificat SSL provient de cette autorité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X