Notre client vient de rejoindre le programme iOS Developer Enterprise. Ils ont signé l'application (développée par nos soins) avec leur distribution d'entreprise et l'ont installée avec succès sur certains appareils via MDM.
Pour autant que je sache quand mon certificat de distribution non-entreprise expire, je dois le renouveler. Cette expiration désactive toutes les applications signées avec le certificat expiré dès que les appareils vérifient la validité du certificat par rapport au serveur OCSP d'Apple.
Alternativement, je peux révoquer ma distribution non-entreprise avant la date d'expiration et en demander une nouvelle à Apple. Les applications signées avec le certificat révoqué, par exemple les applications bêta ad hoc, seront désactivées selon le même mécanisme.
Donc, avec mon programme développeur, je ne peux pas avoir deux certificats de distribution valides en même temps. Ok, en tant que développeurs, nous pouvons vivre avec ça.
Notre client peut-il avoir simultanément deux certificats Enterprise Distribution valides avec le programme iOS Developer Enterprise?
Selon Apple:
Validation du certificat
La première fois qu’une application est ouverte sur un appareil, le certificat de distribution est validé en contactant le serveur OCSP d’Apple. Sauf si le certificat a été révoqué, l'application est autorisée à s'exécuter. L'incapacité de contacter ou d'obtenir une réponse du serveur OCSP n'est pas interprétée comme une révocation. Pour vérifier l'état, l'appareil doit pouvoir accéder à ocsp.Apple.com. Voir "Configuration requise pour la configuration du réseau" (page 9).
La réponse OCSP est mise en cache sur le périphérique pendant la période spécifiée par le serveur OCSP, actuellement entre 3 et 7 jours. La validité du certificat ne sera pas vérifiée à nouveau tant que l'appareil n'aura pas redémarré et que la réponse en cache n'aura pas expiré. Si une révocation est reçue à ce moment, l'application ne pourra pas s'exécuter. La révocation d'un certificat de distribution invalidera toutes les applications que vous avez distribuées.
Une application ne s'exécutera pas si le certificat de distribution a expiré. Actuellement, les certificats de distribution sont valables un an. Quelques semaines avant l'expiration de votre certificat, demandez un nouveau certificat de distribution à iOS DevCenter, utilisez-le pour créer de nouveaux profils d'approvisionnement de distribution, puis recompilez et distribuez les applications mises à jour à vos utilisateurs. Voir "Fourniture d'applications mises à jour" (page 10)
Suis-je en train de manquer quelque chose ou est-il possible que les employés, avec potentiellement des centaines d'appareils iOS avec plusieurs applications internes, ne puissent pas ouvrir leurs applications en attendant les applications résignées?
C'est un problème que nous traitons depuis les 2 dernières années. Les applications internes cessent de fonctionner après 1 an. C'est un exercice énorme pour une organisation comme la nôtre de reconstruire des centaines d'applications et de les redéployer sur des milliers d'appareils chaque année.
Pour nous, c'est un exercice d'un mois où nous reconstruisons toutes nos applications et informons tous les utilisateurs d'en obtenir de nouvelles via le canal de distribution. Chaque année, certains utilisateurs se retrouvent avec des applications non fonctionnelles.
J'ai déposé une demande d'amélioration auprès d'Apple (ID de bogue # 9848075) pour cela et j'attends toujours une réponse.
EDIT: Le bogue mentionné ci-dessus est fermé maintenant. Voici la réponse officielle:
Les certificats de distribution pour les entreprises durent désormais 3 ans.
Le lien "manquant" est maintenant http://help.Apple.com/iosdeployment-apps/?lang=en#app43ad74a
Quelques semaines avant l'expiration de votre certificat, demandez un nouveau certificat de distribution au iOS Dev Center, utilisez-le pour créer de nouveaux profils d'approvisionnement de distribution, puis recompilez et distribuez les applications mises à jour à vos utilisateurs.
Le document décrit également comment mettre à jour les applications. Il existe des cadres qui incluent facilement le mécanisme de mise à jour dans votre application. Par exemple "Hockey", https://github.com/therealkerni/HockeyKit
Citant l'article complet:
Validation du certificat
La première fois qu'un utilisateur ouvre une application, le certificat de distribution est validé en contactant le serveur OCSP d'Apple. Sauf si le certificat a été révoqué, l'application est autorisée à s'exécuter. L'incapacité de contacter ou d'obtenir une réponse du serveur OCSP n'est pas interprétée comme une révocation. Pour vérifier l'état, l'appareil doit pouvoir accéder à ocsp.Apple.com. Voir Configuration requise pour la configuration du réseau.
La réponse OCSP est mise en cache sur l'appareil pendant la période de temps spécifiée par le serveur OCSP, actuellement entre 3 et 7 jours. La validité du certificat n'est pas vérifiée à nouveau tant que l'appareil n'a pas redémarré et que la réponse en cache n'a pas expiré. Si une révocation est reçue à ce moment, l'application ne peut pas être exécutée. La révocation d'un certificat de distribution invalide toutes les applications que vous avez distribuées.
Une application ne s'exécutera pas si le certificat de distribution a expiré. Actuellement, les certificats de distribution sont valables un an. Quelques semaines avant l'expiration de votre certificat, demandez un nouveau certificat de distribution au iOS Dev Center, utilisez-le pour créer de nouveaux profils d'approvisionnement de distribution, puis recompilez et distribuez les applications mises à jour à vos utilisateurs. Voir Fourniture d'applications mises à jour.
Remarque: Le texte hiérarchique ci-dessous indique le chemin d'accès aux informations qui expliquent la solution. Vous devez naviguer vers (développer les flèches à côté de) les éléments dans la barre latérale pour voir la solution (Mani, veuillez ne pas supprimer ces informations - elles sont là pour diriger le spectateur vers la solution.)
Documentation actuelle d'Apple:
Distributing Enterprise Apps for iOS Devices
In-house apps
Certificate validation
Providing updated apps
De Fournir des applications mises à jour:
Vous pouvez avoir deux certificats de distribution actifs en même temps; chacun est indépendant de l'autre. Le deuxième certificat est destiné à fournir une période de chevauchement pendant laquelle vous pouvez mettre à jour vos applications avant l'expiration du premier certificat. Lorsque vous demandez votre deuxième certificat de distribution au iOS Dev Center, assurez-vous de ne pas révoquer votre premier certificat.
Qu'il n'y ait pas de façon transparente de le faire pour que tous nos clients internes n'aient pas besoin de voir cela est un manque de fonctionnalité assez terrible.
Apple a révisé la documentation ...
Une application ne s'exécutera pas si son certificat de distribution a expiré. Actuellement, les certificats de distribution sont valables un an et vous pouvez avoir deux certificats actifs en même temps. Le deuxième certificat est destiné à fournir une période de chevauchement pendant laquelle vous pouvez mettre à jour vos applications avant l'expiration du premier certificat.
Par exemple, six mois avant l'expiration de votre certificat de distribution, créez un nouveau certificat et utilisez-le pour mettre à jour vos applications pour l'année suivante. Pour ce faire, vous demandez un nouveau certificat de distribution au iOS Dev Center (ne révoquez pas votre premier certificat), vous l'utilisez pour créer de nouveaux profils d'approvisionnement de distribution pour chacune de vos applications, puis vous recompilez et distribuez les applications mises à jour à vos utilisateurs . Voir Fourniture d'applications mises à jour.
Juste un petit suivi.
Original:
"Pour autant que je sache quand mon certificat de distribution non-entreprise expire, je dois le renouveler. Cette expiration désactive toutes les applications signées avec le certificat expiré dès que les appareils vérifient la validité du certificat par rapport au serveur OCSP d'Apple."
Ce n'est pas tout à fait vrai, si je comprends bien. Ce info de Apple et comme expliqué ici dit le contraire.
Que se passe-t-il si mon certificat expire ou a été révoqué?
...
Certificat de distribution iOS (App Store)
- Si votre adhésion au programme pour développeurs iOS est valide, vos applications existantes sur l'App Store ne seront pas affectées. Cependant, vous ne pourrez plus soumettre de nouvelles applications ou mises à jour sur l'App Store.