Moyen approprié de renouveler le certificat de distribution pour iOS

303

Mon certificat de distribution expire le 7 juin, avec tous mes fichiers d'approvisionnement. Comment le renouveler correctement? Dois-je le révoquer maintenant et en demander un nouveau? Si je fais cela, toutes mes applications en direct seront-elles supprimées?

user1413558
la source
7
Pour une raison quelconque, après avoir utilisé ce compte pendant des années, j'ai reçu une notification concernant cette réponse. Je ne suis pas encore mort. J'aimerais également remercier tout le monde sur StackOverflow au fil des ans de m'avoir aidé. J'ai écrit cette question quand j'avais 14 ans (maintenant 21). Depuis lors, j'ai continué à créer des applications iOS, et je vais bientôt commencer un rôle à temps plein chez Apple (mon rêve depuis aussi longtemps que je me souvienne). Merci encore à tous ceux qui ont aidé en cours de route!
user1413558
belle histoire! ouais les années passent! vous ne pouvez même pas imaginer comment la programmation a été effectuée avant le contrôle qualité en ligne. cheers
Fattie
@Fattie Pourquoi l'avertissement? Mis à part les petites modifications de l'interface utilisateur sur les pages d'Apple, la réponse acceptée est toujours correcte. Tout ne se passe pas automatiquement mal simplement parce qu'il est vieux.
Theo
salut @Theo, je pense qu'il y a eu une longue discussion (maintenant supprimée) donc mon commentaire (je viens de le supprimer!) n'a pas de sens spécifique, merci de l'avoir signalé. Veuillez noter que dans ce cas spécifique, l'ancienne réponse cochée sur 5 ans contient des informations erronées, comme par exemple SLBarth l'explique.
Fattie

Réponses:

357

Vos applications en direct ne seront pas supprimées. Rien n'arrivera à tout ce qui est en direct dans l'App Store.

Une fois qu'ils expirent officiellement, la seule chose qui sera affectée est votre capacité à signer du code (et donc à créer de nouvelles versions et à fournir des mises à jour).

En ce qui concerne votre certificat de distribution, une fois expiré, il disparaît simplement de la section «Certificats, identificateurs et profils» du Centre des membres. Si vous souhaitez le renouveler avant son expiration, révoquez le certificat actuel et vous obtiendrez un bouton pour en demander un nouveau.

En ce qui concerne le profil d'approvisionnement, ne vous en faites pas avant l'expiration, continuez simplement à l'utiliser. Il est assez facile de simplement le renouveler une fois qu'il expire.

La tranquillité d'esprit est que rien ne se passera dans votre application en direct dans la boutique.

Andy Obusek
la source
7
Merci, ils ont expiré aujourd'hui. Les renouvelé sans problème.
user1413558
30
Juste un fyi pour les autres. J'ai révoqué un certificat utilisé pour la distribution d'entreprise et je n'ai PAS eu la possibilité de renouveler le certificat. C'était juste parti. L'application était en panne (non installable) jusqu'à ce que je la reconstruise avec le nouveau certificat.
pliantlettuce
34
Hé, ne révoquez pas votre certificat interne !! Vos applications internes ne fonctionneront pas après un redémarrage / 3 jours, sauf si vous pouvez mettre à jour toutes vos applications pendant cette période. Apple vous permet de créer 2 applications internes afin qu'elles puissent se chevaucher, puis vous mettez à jour vos nouvelles applications avec. Ne le révoquez pas. La seule chose que vous pouvez révoquer est le certificat App-Store sans arrêter les applications existantes.
mskw
13
À strictement parler, vous ne pouvez pas renouveler les certificats, vous devez en générer de nouveaux - voir developer.apple.com/library/ios/#documentation/IDEs/Conceptual/…
mklement0
2
Lien mis à jour vers les documents d'Apple à ce sujet: developer.apple.com/library/ios/documentation/IDEs/Conceptual/…
qix
348

Lorsque votre certificat expire, il disparaît simplement de la section «Certificats, identifiants et profils» du Centre des membres. Il n'y a pas de bouton «Renouveler» qui vous permet de renouveler votre certificat. Vous pouvez révoquer un certificat et en générer un nouveau avant son expiration . Ou vous pouvez attendre son expiration et sa disparition, puis générer un nouveau certificat. Dans le guide de distribution des applications d'Apple :

Remplacement des certificats expirés

Lorsque votre certificat de développement ou de distribution expire, supprimez-le et demandez un nouveau certificat dans Xcode.

Lorsque votre certificat expire ou est révoqué, tout profil d'approvisionnement ayant utilisé le certificat expiré / révoqué sera reflété comme «non valide». Vous ne pouvez pas créer et signer une application à l'aide de ces profils d'approvisionnement non valides. Comme vous pouvez l'imaginer, je préfère révoquer et régénérer un certificat avant son expiration.

Q: Si je le fais, toutes mes applications en direct seront-elles supprimées?

Les applications qui sont déjà sur l'App Store continuent de fonctionner correctement. Encore une fois, dans le Guide de distribution des applications d'Apple :

Important: la recréation de vos certificats de développement ou de distribution n'affecte pas les applications que vous avez soumises au magasin ni la capacité de les mettre à jour.

Alors…

Q: Comment le renouveler correctement?

Comme mentionné ci-dessus, il n'y a pas de renouvellement de certificats. Suivez les étapes ci-dessous pour révoquer et régénérer un nouveau certificat, ainsi que les profils d'approvisionnement affectés. Les instructions ont été mises à jour pour Xcode 8.3 et Xcode 9.

Étape 1: révoquer le certificat expirant

Connectez-vous au Centre des membres > Certificats, identifiants et profils, sélectionnez le certificat expirant. Prenez note de la date d'expiration du certificat et cliquez sur le bouton «Révoquer».

Sélectionnez le certificat expirant et cliquez sur le bouton Révoquer

Étape 2: (facultatif) supprimez le certificat révoqué de votre trousseau

Facultativement, si vous ne voulez pas que le certificat révoqué traîne dans votre système, vous pouvez les supprimer de votre système. Malheureusement, la fonction «Supprimer le certificat» dans Xcode> Préférences> Comptes> [Identifiant Apple]> Gérer les certificats… semble toujours être désactivée, nous devons donc les supprimer manuellement à l'aide de Keychain Access.app (/ Applications / Utilities / Keychain Access. application).

Supprimez éventuellement le certificat révoqué à l'aide de Keychain Access.app

Filtrer par porte-clés «connexion» et catégorie «Certificats». Recherchez le certificat que vous venez de révoquer à l'étape 1.

Selon le certificat que vous venez de révoquer, recherchez «Mac» ou «iPhone». Les certificats de distribution Mac App Store commencent par «Développeur Mac tiers» et les certificats de distribution iOS App Store commencent par «Distribution iPhone».

Vous pouvez localiser le certificat révoqué en fonction du nom de l'équipe, du type de certificat (Mac ou iOS) et de la date d'expiration du certificat que vous avez noté à l'étape 1.

Étape 3: demander un nouveau certificat à l'aide de Xcode

Sous Xcode> Préférences> Comptes> [Identifiant Apple]> Gérer les certificats…, cliquez sur le bouton «+» en bas à gauche et sélectionnez le même type de certificat que vous venez de révoquer pour permettre à Xcode d'en demander un nouveau pour vous .

Laissez Xcode vous demander un nouveau certificat dans Xcode> Préférences> Comptes> Identifiant Apple> Gérer les certificats…

Étape 4: mettez à jour vos profils d'approvisionnement pour utiliser le nouveau certificat

Après quoi, revenez à Member Center > Certificats, identificateurs et profils> Profils de provisioning> Tous. Vous remarquerez que tout profil de provisioning utilisant le certificat révoqué est désormais reflété comme «non valide».

Notez que tout profil d'approvisionnement ayant utilisé le certificat révoqué est désormais reflété comme «non valide»

Cliquez sur n'importe quel profil qui est maintenant «invalide», cliquez sur «Modifier», puis choisissez le certificat nouvellement créé, puis cliquez sur «Générer». Répétez cette opération jusqu'à ce que tous les profils d'approvisionnement soient régénérés avec le nouveau certificat.

Choisissez le certificat nouvellement créé et cliquez sur Générer

Étape 5: utilisez Xcode pour télécharger les nouveaux profils d'approvisionnement

Conseil : Avant de télécharger les nouveaux profils à l'aide de Xcode, vous souhaiterez peut-être supprimer tous les profils d'approvisionnement existants et éventuellement non valides de votre Mac. Vous pouvez le faire en supprimant tous les profils de~/Library/MobileDevice/Provisioning Profiles

De retour dans Xcode> Préférences> Comptes> [Identifiant Apple], cliquez sur le bouton «Télécharger tous les profils» pour demander à Xcode de télécharger tous les profils d'approvisionnement à partir de votre compte de développeur.

Cliquez sur Télécharger tous les profils pour Xcode pour télécharger tous les profils nouvellement générés

junjie
la source
1
Salut Junjie, merci! Je suis confronté à ce problème avec Xcode 7. Que se passe-t-il avec les applications publiées avec un profil d'approvisionnement de distribution AdHoc si je révoque le certificat de distribution? Vivent-ils encore? Merci
Frade
3
@Frade selon Apple: certificat de distribution iOS (applications internes et à usage interne), les utilisateurs ne pourront plus exécuter les applications signées avec ce certificat. Vous devez distribuer une nouvelle version de votre application signée avec un nouveau certificat. Voir developer.apple.com/support/certificates
junjie
Je posais des questions sur AdHoc, mais c'est probablement la même situation. Merci
Frade
3
@junjie Que se passe-t-il dans le cas où l'application publiée dans la boutique a des droits de notifications push? Sera-t-il toujours en mesure d'envoyer des notifications push après l'expiration du certificat?
Otávio
4
@ Otávio vos certificats de distribution d'applications (ce que nous traitons dans cette question) sont distincts de votre certificat APNS. le certificat APNS ne fait pas partie du binaire de l'application. vous pouvez révoquer / renouveler votre certificat APNS sans mettre à jour le binaire de votre application. c'est votre serveur push qui nécessite le certificat APNS.
junjie
21

Depuis janvier 2020 et Xcode 11.3.1 -

  • Ouvrir Xcode
  • Ouvrez les préférences Xcode (Xcode-> Préférences ou Cmd-,)
  • Cliquez sur Comptes
  • À gauche, cliquez sur votre ID développeur
  • En bas à droite, cliquez sur Gérer les certificats ...
  • Dans le coin inférieur gauche, cliquez sur la flèche à droite du + (plus)
  • Sélectionnez Apple Distribution dans le menu

Xcode créera automatiquement un certificat de distribution Apple, l'installera dans Keychain Access et mettra à jour les informations de signature de Xcode

(Remarque: le certificat de distribution Apple unique est désormais fourni à la place du certificat de distribution iOS précédent et de ses équivalents.)

leanne
la source
curieux: j'ai reçu mon courrier d'Apple pour renouveler le certificat de distribution iOS. aucune information que je devrais plutôt créer un certificat de distribution Apple.
ekkescorner
L'email ne le mentionne pas, @ekkescorner. C'est dans la documentation en ligne.
leanne
2
ce nouveau flux de travail pour recréer les certificats semble trop facile ;-) encore
merci
Merci @leanne pour la réponse. Il devrait y avoir une option d'expiration pour les anciennes réponses non pertinentes ci-dessus dans SO.
RobMac
11

Très simple était de renouveler votre certificat. Accédez à votre centre de membres de développeur et accédez à votre profil d'approvisionnement et voyez quels sont les certificats actif et inactif, sélectionnez le certificat inactif et appuyez sur le bouton Modifier, puis sur le bouton Générer. Maintenant, votre certificat a été renouvelé avec succès pour un an. Merci

Shanmugasundharam
la source
@Shanmugasundharam, Allons-nous pousser une nouvelle version dans l'App Store après avoir créé un profil d'approvisionnement.
Niraj Paul
Cela nécessite toujours un fichier .csr généré à partir de xcode, au moins, à partir de ce que j'ai trouvé. Depuis developer.apple.com/account, je vais dans "Certificats, ID et profils" -> "Profils". Je vois un ReleaseProfile et un TestingProfile. Les deux affichent "Invalid" dans la colonne "Expiration". Je clique sur ReleaseProfile, puis sur "Edit". Sous "Certificats", il indique "Aucun certificat n'est disponible" avec un bouton "Créer un certificat". Je clique dessus. Je sélectionne ensuite "Distribution iOS" et "Continuer". Maintenant, pour le créer, je dois "Choisir un fichier", ce qui signifie télécharger un fichier CSR, qui, je suppose, ne peut être généré qu'à partir de xcode.
Brent212
J'ai compris que je pouvais générer une CSR simplement en exécutant, sous Linux: **** openssl req -nodes -newkey rsa: 2048 -keyout private_key.key -out cer_sign_request.csr **** Je ne peux pas croire qu'il y ait autant de réponses à "comment générer un certificat csr" qui nécessite xcode sans mentionner cette solution simple qui ne nécessite pas d'épousseter mon ancien mac et de lancer un IDE volumineux.
Brent212
@NirajPaul Votre application fonctionnera toujours pour les utilisateurs qui l'ont téléchargée depuis la boutique, et elle fonctionnera même pour vous si vous la téléchargez depuis la boutique. Cela n'affecte que les utilisateurs qui mettent l'application sur l'appareil à l'aide d'un profil d'approvisionnement (c'est-à-dire que vous l'avez créée et installée sur votre appareil à partir de xCode). Les utilisateurs passés, présents et futurs ne remarqueront rien de différent. stackoverflow.com/a/7128502/3493877 Source d'ici
Shanmugasundharam
0

C'était un fil vraiment utile, j'ai suivi les mêmes étapes que @junjie a mentionné mais pour moi quelque chose de bizarre s'est produit, voici les étapes que j'ai faites.

  1. Je suis allé sur le portail des développeurs et j'ai révoqué le certificat qui était sur le point d'expirer.
  2. Je suis allé à XCode6.4 et dans les paramètres du compte, le certificat était toujours valide, je suis devenu fou.
  3. Ensuite, j'ai ouvert XCode7, le certificat a été affiché avec le bouton "Réinitialiser" au lieu de créer et j'ai appuyé sur le bouton de réinitialisation et plus tard dans le portail, j'ai pu voir un certificat étendu présent. Voici ce que dit Apple à propos du bouton de réinitialisation

Si Xcode détecte un problème avec une identité de signature, il affiche une action appropriée dans les préférences des comptes. Si Xcode affiche un bouton Créer, l'identité de signature n'existe pas dans le Centre des membres ou sur votre Mac. Si Xcode affiche un bouton Réinitialiser, l'identité de signature n'est pas utilisable sur votre Mac - par exemple, il manque la clé privée. Si vous cliquez sur le bouton Réinitialiser, Xcode révoque et demande le certificat correspondant.

  1. J'ai essayé de créer un Appstore ipa avec cela, juste pour tester et cela a bien fonctionné, donc je suis enregistré, mais je ne sais toujours pas ce qui s'est passé. Peut-être que j'avais plusieurs comptes configurés sur mon Mac, je ne sais pas.
anoop4real
la source