Modo corretto per rinnovare il certificato di distribuzione per iOS


303

Il mio certificato di distribuzione sta scadendo il 7 giugno, insieme a tutti i miei file di provisioning. Come lo rinnovo correttamente? Devo revocarlo ora e richiederne uno nuovo? Se lo faccio, tutte le mie app live verranno rimosse?


7
Per qualsiasi motivo, dopo non aver utilizzato questo account per anni, ho ricevuto una notifica su questa risposta. Non sono morto (ancora). Vorrei anche ringraziare tutti su StackOverflow nel corso degli anni per avermi aiutato. Ho scritto questa domanda quando avevo 14 anni (ora 21). Da allora, ho continuato a creare app iOS e presto inizierò un ruolo a tempo pieno in Apple (il mio sogno per tutto il tempo che posso ricordare). Grazie ancora a tutti quelli che ci hanno aiutato lungo la strada!
user1413558

grande storia! sì, gli anni passano! non puoi nemmeno immaginare come sia stata fatta la programmazione prima del QA online. salute
Fattie il

@Fattie Perché l'avvertimento? Piccole modifiche dell'interfaccia utente sulle pagine di Apple a parte, la risposta accettata rimane corretta. Non tutto diventa automaticamente sbagliato solo perché è vecchio.
Theo

ciao @Theo, penso che ci sia stata una lunga discussione (ora cancellata) quindi il mio commento (l'ho appena cancellato!) non ha alcun senso specifico, grazie per averlo sottolineato. Si noti che in questo caso specifico, la risposta di 5 anni con Ticked contiene informazioni errate, come ad esempio SLBarth.
Fattie,

Risposte:


357

Le tue app live non verranno rimosse. Non succederà nulla a tutto ciò che è in diretta nell'app store.

Una volta scaduti formalmente, l'unica cosa che sarà influenzata è la tua capacità di firmare il codice (e quindi creare nuove build e fornire aggiornamenti).

Per quanto riguarda il certificato di distribuzione, una volta scaduto, scompare semplicemente dalla sezione "Certificati, identificatore e profili" del Centro membri. Se vuoi rinnovarlo prima della scadenza, revoca il certificato corrente e otterrai un pulsante per richiederne uno nuovo.

Per quanto riguarda il profilo di provisioning, non preoccuparti prima della scadenza, continua a utilizzarlo. È abbastanza facile rinnovarlo una volta scaduto.

La tranquillità è che non succederà nulla alla tua app live nello store.


7
Grazie, sono scaduti oggi. Li ho rinnovati senza problemi.
user1413558

30
Solo un fyi per altre persone. Ho revocato un certificato utilizzato per la distribuzione aziendale e NON mi è stata data la possibilità di rinnovare il certificato. Era appena andato. L'app era inattiva (non installabile) finché non l'ho ricostruita con il nuovo certificato.
Foldlettuce

34
Ehi, non revocare il tuo certificato interno !! Le app in-house non funzioneranno dopo un riavvio / 3 giorni, a meno che non sia possibile aggiornare tutte le app in quel periodo di tempo. Apple ti consente di creare 2 app interne in modo che possano sovrapporsi e quindi aggiornare le tue nuove app con esso. Non revocarlo. L'unica cosa che puoi revocare è l'App-Store Cert senza interrompere le app esistenti.
mskw

13
A rigor di termini, non è possibile rinnovare i certificati, è necessario generarne di nuovi - vedi developer.apple.com/library/ios/#documentation/IDEs/Conceptual/…
mklement0

2
Link aggiornato ai documenti di Apple su questo: developer.apple.com/library/ios/documentation/IDEs/Conceptual/…
qix

348

Quando il certificato scade, scompare semplicemente dalla sezione "Certificati, identificatore e profili" del Centro membri. Non esiste un pulsante "Rinnova" che ti consente di rinnovare il tuo certificato. È possibile revocare un certificato e generarne uno nuovo prima che scada . Oppure puoi aspettare che scada e scompaia, quindi generare un nuovo certificato. Nella guida alla distribuzione delle app di Apple :

Sostituzione dei certificati scaduti

Alla scadenza del certificato di sviluppo o distribuzione, rimuovilo e richiedi un nuovo certificato in Xcode.

Quando il certificato scade o viene revocato, qualsiasi profilo di provisioning che ha utilizzato il certificato scaduto / revocato verrà considerato "Non valido". Non è possibile creare e firmare alcuna app utilizzando questi profili di provisioning non validi. Come puoi immaginare, preferirei revocare e rigenerare un certificato prima che scada.

D: Se lo faccio, tutte le mie app live verranno rimosse?

Le app che sono già sull'App Store continuano a funzionare correttamente. Ancora una volta, nella Guida alla distribuzione delle app di Apple :

Importante: la ri-creazione dei certificati di sviluppo o distribuzione non influisce sulle app che hai inviato allo store né sulla tua capacità di aggiornarli.

Così…

Q: Come posso rinnovarlo correttamente?

Come accennato in precedenza, non è previsto il rinnovo dei certificati. Seguire i passaggi seguenti per revocare e rigenerare un nuovo certificato, insieme ai profili di provisioning interessati. Le istruzioni sono state aggiornate per Xcode 8.3 e Xcode 9.

Passaggio 1: revocare il certificato in scadenza

Accedi al Centro membri > Certificati, identificatori e profili, seleziona il certificato in scadenza. Prendi nota della data di scadenza del certificato e fai clic sul pulsante "Revoca".

Seleziona il certificato in scadenza e fai clic sul pulsante Revoca

Passaggio 2: (Facoltativo) Rimuovi il certificato revocato dal tuo portachiavi

Facoltativamente, se non si desidera che il certificato revocato sia presente nel proprio sistema, è possibile eliminarlo dal proprio sistema. Sfortunatamente, la funzione 'Elimina certificato' in Xcode> Preferenze> Account> [ID Apple]> Gestisci certificati ... sembra essere sempre disabilitata, quindi dobbiamo eliminarli manualmente usando Keychain Access.app (/ Applicazioni / Utilità / Accesso portachiavi. app).

Opzionalmente rimuovere il certificato revocato usando Keychain Access.app

Filtra per 'login' Portachiavi e categoria 'Certificati'. Individua il certificato che hai appena revocato al passaggio 1.

A seconda del certificato che hai appena revocato, cerca "Mac" o "iPhone". I certificati di distribuzione del Mac App Store iniziano con "Sviluppatore Mac di terze parti" e i certificati di distribuzione del App Store per iOS iniziano con "Distribuzione iPhone".

È possibile individuare il certificato revocato in base al nome del team, al tipo di certificato (Mac o iOS) e alla data di scadenza del certificato annotata nel passaggio 1.

Passaggio 3: richiedere un nuovo certificato utilizzando Xcode

In Xcode> Preferenze> Account> [ID Apple]> Gestisci certificati ..., fai clic sul pulsante "+" in basso a sinistra e seleziona lo stesso tipo di certificato che hai appena revocato per consentire a Xcode di richiederne uno nuovo per te .

Consenti a Xcode di richiederti un nuovo certificato in Xcode> Preferenze> Account> ID Apple> Gestisci certificati ...

Passaggio 4: aggiornare i profili di provisioning per utilizzare il nuovo certificato

Dopodiché, torna al Centro membri > Certificati, identificatori e profili> Profili di provisioning> Tutti. Noterai che qualsiasi profilo di provisioning che ha utilizzato il certificato revocato viene ora riflesso come "Non valido".

Si noti che qualsiasi profilo di provisioning che ha utilizzato il certificato revocato viene ora riflesso come "Non valido"

Fai clic su un profilo che ora è "Non valido", fai clic su "Modifica", quindi scegli il certificato appena creato, quindi fai clic su "Genera". Ripetere l'operazione fino a quando tutti i profili di provisioning non vengono rigenerati con il nuovo certificato.

Scegli il certificato appena creato e fai clic su Genera

Passaggio 5: utilizzare Xcode per scaricare i nuovi profili di provisioning

Suggerimento : prima di scaricare i nuovi profili utilizzando Xcode, potresti voler cancellare dal Mac tutti i profili di provisioning esistenti e possibilmente non validi. Puoi farlo rimuovendo tutti i profili da~/Library/MobileDevice/Provisioning Profiles

Torna in Xcode> Preferenze> Account> [ID Apple], fai clic sul pulsante "Scarica tutti i profili" per chiedere a Xcode di scaricare tutti i profili di provisioning dal tuo account sviluppatore.

Fai clic su Scarica tutti i profili per Xcode per scaricare tutti i profili appena generati


1
Ciao Junjie, grazie! Sto affrontando questo problema con Xcode 7. Cosa succede alle app rilasciate con il profilo di provisioning della distribuzione AdHoc, se revoco il certificato di distribuzione? Sono ancora vivi? Grazie
Frade il

3
@Frade secondo Apple: certificato di distribuzione iOS (app interne, app per uso interno), gli utenti non potranno più eseguire app firmate con questo certificato. È necessario distribuire una nuova versione dell'app firmata con un nuovo certificato. Vedi developer.apple.com/support/certificates
junjie,

Stavo chiedendo di AdHoc, ma probabilmente è la stessa situazione. Grazie
Frade il

3
@junjie Cosa succede nel caso in cui l'app pubblicata nello store abbia diritti alle notifiche push? Sarà ancora in grado di inviare notifiche push dopo la scadenza del certificato?
Otávio,

4
@ Otávio i certificati di distribuzione delle tue app (di cosa trattiamo in questa domanda) sono separati dal tuo certificato APNS. il certificato APNS non fa parte del file binario dell'app. puoi revocare / rinnovare il certificato APNS senza aggiornare il file binario dell'app. è il tuo server push che richiede il certificato APNS.
Junjie,

21

A partire da gennaio 2020 e Xcode 11.3.1 -

  • Apri Xcode
  • Apri le preferenze di Xcode (Xcode-> Preferenze o Cmd-,)
  • Fai clic su Account
  • A sinistra, fai clic sul tuo ID sviluppatore
  • In basso a destra, fai clic su Gestisci certificati ...
  • Nell'angolo in basso a sinistra, fai clic sulla freccia a destra del + (più)
  • Seleziona Apple Distribution dal menu

Xcode creerà automaticamente un certificato di distribuzione Apple, lo installerà in Accesso Portachiavi e aggiornerà le informazioni di firma di Xcode

(Nota: ora viene fornito il singolo certificato di distribuzione Apple invece del precedente certificato di distribuzione iOS e equivalenti.)


curioso: ho ricevuto la mia posta da Apple per rinnovare il certificato di distribuzione iOS. nessuna informazione che dovrei invece creare un certificato di distribuzione Apple.
ekkescorner,

L'email non lo menziona, @ekkescorner. È nei documenti online.
Leanne

2
questo nuovo flusso di lavoro per ricreare i certificati sembra troppo facile ;-) grazie ancora
ekkescorner il

Grazie @leanne per la risposta. Dovrebbe esserci un'opzione di scadenza per le risposte irrilevanti antiche sopra in SO.
RobMac il

11

È stato molto semplice rinnovare il certificato. Vai al centro membri dello sviluppatore e vai al tuo profilo di provisioning e vedi quali sono i certificati Attivo e Inattivo e seleziona Certificato inattivo e premi il pulsante Modifica, quindi premi il pulsante Genera. Ora il rinnovo del certificato è andato a buon fine per un altro anno. Grazie


@Shanmugasundharam, inseriremo una nuova versione nell'app store dopo aver creato un profilo di provisioning.
Niraj Paul,

Ciò richiede ancora un file .csr generato da xcode, almeno, da quello che ho trovato. Da developer.apple.com/account, vado a "Certificati, ID e profili" -> "Profili". Vedo un ReleaseProfile e un TestingProfile. Entrambi mostrano "Non valido" nella colonna "Scadenza". Faccio clic su ReleaseProfile, quindi su "Modifica". Sotto "Certificati" si dice "Nessun certificato disponibile" con un pulsante "Crea certificato". Lo clicco. Quindi seleziono "Distribuzione iOS" e "Continua". Ora, per crearlo, ho bisogno di "Scegli file", che significa caricare un file CSR, che presumo possa essere generato solo da xcode.
Brent212,

Ho capito che posso generare un CSR semplicemente eseguendo, in Linux: **** openssl req -nodes -newkey rsa: 2048 -keyout private_key.key -out cer_sign_request.csr **** Non riesco a credere che ci siano così tante risposte a "come generare csr certificato" che richiedono xcode senza menzionare questa semplice soluzione che non richiede rispolverare il mio vecchio mac e accendere un ingombrante IDE.
Brent212,

@NirajPaul L'applicazione funzionerà comunque per gli utenti che l'hanno scaricata dallo store e funzionerà anche per te se la scarichi dallo store. Questo ha effetto solo sugli utenti che inseriscono l'applicazione sul dispositivo utilizzando un profilo di provisioning (ovvero l'hai creata e installata sul tuo dispositivo da xCode). Gli utenti passati, presenti e futuri non noteranno nulla di diverso. stackoverflow.com/a/7128502/3493877 Fonte da qui
Shanmugasundharam

0

Questo è stato davvero un thread utile, ho seguito gli stessi passaggi menzionati da @junjie ma per me è successo qualcosa di strano, i seguenti sono i passaggi che ho fatto.

  1. È andato al portale per sviluppatori e ha revocato il certificato che stava per scadere.
  2. Sono andato a XCode6.4 e nelle impostazioni dell'account, il certificato era ancora valido, sono impazzito.
  3. Poi ho aperto XCode7, lì il certificato è stato mostrato con il pulsante "Ripristina" invece di creare e ho premuto il pulsante di ripristino e più tardi nel portale sono stato in grado di vedere un certificato esteso presente. Questo è ciò che dice Apple sul pulsante Ripristina

Se Xcode rileva un problema con un'identità di firma, visualizza un'azione appropriata nelle preferenze Account. Se Xcode visualizza un pulsante Crea, l'identità della firma non esiste in Member Center o sul Mac. Se Xcode visualizza un pulsante Reimposta, l'identità della firma non è utilizzabile sul tuo Mac, ad esempio manca la chiave privata. Se si fa clic sul pulsante Reimposta, Xcode revoca e richiede il certificato corrispondente.

  1. Ho provato a creare un AppStore ipa con quello, solo per testarlo e ha funzionato bene, quindi sono salvato, ma ancora non sono sicuro di quello che è successo. Forse ho configurato più account sul mio Mac, non lo so.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.