Code signing macOS e notarization
Code signing e notarization su macOS: come funziona Gatekeeper, la differenza tra firma e notarization, cosa serve e come evitare gli avvisi quando distribuisci un'app Mac.
Distribuire un'app per Mac al di fuori del Mac App Store richiede due passaggi spesso confusi: il code signing e la notarization. Senza, macOS blocca l'app con Gatekeeper. In questa guida ti spiego come funzionano firma e notarization su macOS. Se non conosci il concetto base, parti da cos'è il code signing.
Il guardiano di macOS: Gatekeeper
macOS usa una funzione di sicurezza chiamata Gatekeeper, che controlla le app prima di permetterne l'esecuzione. Se un'app non è firmata e notarizzata, Gatekeeper la blocca o mostra avvisi del tipo "impossibile aprire perché proviene da uno sviluppatore non identificato".
Per distribuire un'app Mac che si apra senza problemi, devi soddisfare Gatekeeper, e servono due cose distinte: il code signing e la notarization.
Firma e notarization: due passaggi diversi
È il punto che genera più confusione. Su macOS non basta firmare: servono entrambi i passaggi.
| Passaggio | Cosa fa |
|---|---|
| Code signing | Firma l'app, certificando autore e integrità |
| Notarization | Apple verifica l'app e conferma che è priva di malware |
Code signing
Come su altre piattaforme, la firma certifica che l'app viene da te e non è stata manomessa. Si usa un certificato Apple, ottenuto tramite l'Apple Developer Program.
Notarization
È un passaggio aggiuntivo specifico di Apple: invii l'app ad Apple, che la analizza automaticamente per verificare che non contenga malware. Se supera il controllo, Apple "notarizza" l'app, e Gatekeeper la accetta senza avvisi. Non è una revisione manuale come per l'App Store: è un controllo automatico di sicurezza.
Il processo completo
Per distribuire un'app Mac fuori dallo store:
- Iscriviti all'Apple Developer Program (necessario per i certificati).
- Firma l'app (code signing) con il tuo certificato Apple.
- Invia l'app per la notarization ad Apple.
- Attendi l'esito del controllo automatico.
- "Stapla" il risultato all'app (allega la conferma di notarization).
- Distribuisci: ora l'app si apre senza avvisi di Gatekeeper.
App Store vs distribuzione diretta
Due scenari diversi:
- Mac App Store: Apple gestisce firma e distribuzione; segui il processo dello store (con revisione).
- Distribuzione diretta (dal tuo sito): devi occuparti tu di firma e notarization, come descritto sopra.
Se distribuisci tramite il Mac App Store, gran parte di questo è gestito dallo store. Se distribuisci direttamente, la firma e la notarization sono responsabilità tua.
Serve l'Apple Developer Program
Punto importante: per firmare e notarizzare un'app Mac serve l'iscrizione all'Apple Developer Program (il costo annuale che vale anche per iOS). Senza, non puoi ottenere i certificati né notarizzare. È un prerequisito.
Quando farsi affiancare
Firma e notarization su macOS comportano certificati, procedure e l'integrazione con i servizi Apple che possono risultare complesse, soprattutto la prima volta. Se stai distribuendo un'app desktop per Mac e vuoi che si apra senza avvisi, è uno degli aspetti tecnici di cui mi occupo nei miei servizi.
In sintesi
Distribuire un'app Mac fuori dallo store richiede due passaggi distinti per soddisfare Gatekeeper: il code signing (firma che certifica autore e integrità) e la notarization (controllo automatico di Apple che verifica l'assenza di malware). Entrambi richiedono l'iscrizione all'Apple Developer Program. Il processo prevede firma, invio per notarization, attesa dell'esito e "stapling" del risultato all'app. Se distribuisci tramite il Mac App Store, gran parte è gestita dallo store; se distribuisci direttamente, è responsabilità tua.
Per le basi, vedi cos'è il code signing; per Windows, code signing per Windows. Per supporto, vedi i miei servizi.