0Pricing
React Academy · Lezione

Creazione e distribuzione per piattaforme desktop

Crei installer per macOS, Windows e Linux usando electron-builder, con firma del codice e aggiornamento automatico.

Creazione e distribuzione per piattaforme desktop è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Configurazione di electron-builder

electron-builder è lo strumento standard per impacchettare le app Electron in installer distribuibili. La relativa configurazione si trova in package.json, nella chiave "build", e specifica i metadati dell'app (appId, productName), i percorsi delle icone e i formati di destinazione per ogni piattaforma.

Target di build per piattaforma

electron-builder supporta macOS (dmg e zip), Windows (installer nsis) e Linux (AppImage e deb). Può specificare più piattaforme in un unico comando di build oppure configurare la CI per eseguire la build di ogni piattaforma sul relativo runner nativo, ottenendo la massima compatibilità.

Firma del codice per macOS

macOS richiede la firma del codice con un certificato Apple Developer affinché Gatekeeper consenta agli utenti di aprire l'app senza un avviso di sicurezza. Durante il processo di build, electron-builder legge il certificato dal Portachiavi di macOS e firma automaticamente tutti i binari.

Notarizzazione per macOS

Oltre alla firma del codice, le versioni moderne di macOS richiedono anche la notarizzazione: l'invio dell'app al servizio di notarizzazione di Apple, che la analizza alla ricerca di malware e rilascia un ticket. electron-builder può automatizzare la notarizzazione tramite electron-notarize; senza di essa, agli utenti di macOS 10.15 e versioni successive l'app verrà bloccata.

Firma del codice per Windows

Windows richiede un certificato Authenticode rilasciato da un'autorità di certificazione (CA) attendibile, affinché SmartScreen consideri attendibile il suo installer. Senza firma, gli utenti visualizzano l'avviso "Windows ha protetto il PC". I certificati Extended Validation (EV) eliminano subito l'avviso, mentre i certificati OV standard costruiscono la fiducia nel tempo.

Struttura dell'output della build

Dopo una build completata correttamente, electron-builder scrive gli installer specifici per piattaforma nella directory dist/. Qui troverà il DMG o lo zip per macOS, il file .exe NSIS per Windows e l'AppImage o il .deb per Linux, oltre a un manifesto per gli aggiornamenti automatici, latest.yml (o latest-mac.yml).

Icone dell'app

Le app Electron richiedono icone in formati specifici per ogni piattaforma: un PNG 512x512 per Linux, un file ICNS (a più risoluzioni) per macOS e un file ICO (a più risoluzioni) per Windows. electron-builder può generare tutti i formati a partire da un unico PNG 1024x1024 usando il flag --icon.

Aggiornamento automatico con electron-updater

Il pacchetto electron-updater si integra con electron-builder per fornire aggiornamenti automatici. Pubblichi le sue build su GitHub Releases o S3: electron-updater potrà verificare la presenza di aggiornamenti all'avvio, scaricare in background l'aggiornamento incrementale e chiedere all'utente di riavviare.

Verifica degli aggiornamenti all'avvio

Chiami autoUpdater.checkForUpdatesAndNotify() in main.js dopo che l'app è pronta. electron-updater recupera il manifesto latest.yml dalla destinazione di pubblicazione, confronta le versioni e, se è disponibile un aggiornamento, lo scarica e mostra una notifica nativa quando è pronto per l'installazione.

L'archivio ASAR

electron-builder raggruppa i file JavaScript dell'applicazione in un unico archivio ASAR (simile a un file tar) per la distribuzione. Questo migliora le prestazioni di avvio riducendo le ricerche nel file system e rende più difficile, anche se non impossibile, esaminare direttamente il codice sorgente.

Estrazione dei moduli nativi dall'ASAR

I moduli nativi Node.js (file .node) non possono essere caricati dall'interno di un archivio ASAR: devono essere estratti nel file system. Configuri asarUnpack in electron-builder per elencare i pattern dei moduli nativi; questi verranno collocati nella directory app.asar.unpacked accanto all'archivio.

Requisito di notarizzazione per macOS

Perché la notarizzazione è necessaria per la distribuzione su macOS, oltre alla semplice firma del codice?

Riepilogo della lezione

La distribuzione di un'app Electron richiede la configurazione dei target di electron-builder, la firma del codice per macOS (con notarizzazione) e Windows (con Authenticode), nonché, facoltativamente, la configurazione degli aggiornamenti automatici con electron-updater. L'archivio ASAR raggruppa l'app per la distribuzione, mentre i moduli nativi vengono estratti separatamente. Una solida pipeline CI/CD gestisce automaticamente questi passaggi per ogni piattaforma.

Domande Frequenti

La lezione «Creazione e distribuzione per piattaforme desktop» è gratuita?

Sì — il testo completo di «Creazione e distribuzione per piattaforme desktop» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Creazione e distribuzione per piattaforme desktop»?

Crei installer per macOS, Windows e Linux usando electron-builder, con firma del codice e aggiornamento automatico. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Creazione e distribuzione per piattaforme desktop»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Architettura di Electron: processi main e renderer
  2. Configurazione di React con Electron
  3. Comunicazione IPC tra processi
  4. Creazione e distribuzione per piattaforme desktop
← Torna a React Academy