Understanding iOS Code Signing

      Nessun commento su Understanding iOS Code Signing

Code signing your app assures users that it’s from a known source and hasn’t been modified since it was last signed. Before your app can integrate app services, be installed on a device, or be submitted to the App Store, it must be signed with a certificate issued by Apple.

https://developer.apple.com/support/code-signing/
Application code signing

Signing Identity, Public & Private Key, Keychain Application

Una cosa da chiarire è il termine “firma”. La firma dell’applicazione consente a iOS di identificare chi ha firmato l’applicazione e di verificare che l’applicazione non sia stata modificata da quando è stata firmata. L’identità di firma consiste in una coppia di chiavi pubbliche e private che Apple crea per voi. Considerate la chiave pubblica come un meccanismo di blocco, per cui è necessario conoscere la chiave privata per “scartare”, sbloccare o decodificare nuovamente i dati.

Da dove provengono la coppia di chiavi pubbliche e private e come si richiede un certificato che le contenga? Tutta questa magia avviene quando si crea una richiesta di firma del certificato (CSR) attraverso l’applicazione Accesso Portachiavi. In questo caso, l’applicazione Portachiavi creerà una chiave privata e un file certSigningRequest da caricare a Apple. Apple verificherà la richiesta e rilascerà un certificato. Il certificato conterrà la chiave pubblica che potrà essere scaricata sul vostro sistema. Dopo averla scaricata, è necessario inserirla nell’applicazione Accesso Portachiavi facendo doppio clic su di essa. Viene utilizzata una dalle funzioni crittografiche per generare una firma univoca per la vostra applicazione, che è fondamentalmente la vostra Code Signing Identity.

Provisioning Profile & App ID

Come sappiamo, ad Apple piace mantenere la sicurezza, quindi non è possibile installare un’app su qualsiasi dispositivo iOS utilizzando solo il certificato. È qui che entrano in gioco i profili di provisioning. Un profilo di provisioning deve essere installato su ogni dispositivo su cui deve essere eseguito il codice dell’applicazione. Ogni profilo di sviluppo conterrà una serie di certificati di sviluppo iPhone, identificatori univoci del dispositivo e un ID app. L’ID app è una stringa in due parti utilizzata per identificare una o più applicazioni di un singolo team di sviluppo.

I dispositivi specificati nel Profilo di provisioning sviluppo possono essere utilizzati per i test solo dalle persone i cui Certificati di sviluppo sono inclusi nel profilo. Un singolo dispositivo può contenere più profili di provisioning.

Checklist

Ecco quindi i passi necessari:

  • Xcode verrà installato e il certificato intermedio verrà inserito nel portachiavi.
  • Verrà creata una richiesta di firma del certificato (CSR).
  • La chiave privata verrà generata durante la creazione del CSR e memorizzata nel portachiavi.
  • Il CSR sarà caricato nel Centro per i membri (Apple)
  • Apple verificherà tutto e rilascerà il certificato
  • Il certificato verrà scaricato sul computer
  • Il certificato verrà inserito nel Portachiavi e abbinato alla chiave privata per formare la Code Signing Identity.
  • Il profilo di provisioning verrà creato utilizzando il certificato, l’ID dell’app e gli identificatori del dispositivo e scaricato da Xcode.
  • Xcode firmerà l’app e manderà i profili di provisioning sul dispositivo.
  • iOS verificherà se tutto è stato configurato correttamente. Ciò significa che il profilo di provisioning deve includere il certificato utilizzato per firmare l’app, l’UDID del dispositivo e l’ID app sia corretto.

Ore la tua app firmata dovrebbe correttamente poter essere caricata su AppStore. Commit!

About Fabio

Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre più affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+