React Academy · Oppitunti

Työpöytäalustojen paketointi ja jakelu

Rakentakaa macOS-, Windows- ja Linux-asentimet electron-builderilla sekä koodin allekirjoituksella ja automaattisilla päivityksillä.

Oppitunti 4/413 vaihetta

Työpöytäalustojen paketointi ja jakelu on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.

electron-builderin kokoonpano

electron-builder on vakiotyökalu Electron-sovellusten pakkaamiseen ja jaettavien asennusohjelmien luomiseen. Sen määritys sijaitsee package.json-tiedostossa "build"-avaimen alla, ja siinä määritetään sovelluksen metatiedot (appId, productName), kuvakkeiden polut sekä alustakohtaiset kohdemuodot.

Koontikohteet alustoittain

electron-builder tukee macOS:ää (dmg ja zip), Windowsia (nsis-asennusohjelma) ja Linuxia (AppImage ja deb). Voitte kohdistaa koonnin useille alustoille yhdellä build-komennolla tai määrittää CI:n kokoamaan sovelluksen kullakin alustalla sen omassa natiivissa runner-ympäristössä parhaan yhteensopivuuden varmistamiseksi.

macOS:n koodin allekirjoitus

macOS edellyttää koodin allekirjoittamista Apple Developer -varmenteella, jotta Gatekeeper sallii käyttäjien avata sovelluksen ilman suojausvaroitusta. electron-builder lukee varmenteen macOS Keychainista koontiprosessin aikana ja allekirjoittaa kaikki binäärit automaattisesti.

macOS:n notarointi

Koodin allekirjoittamisen lisäksi moderni macOS edellyttää myös notarointia – sovellus lähetetään Applen notarointipalveluun, joka tarkistaa sen haittaohjelmien varalta ja myöntää lipukkeen. electron-builder voi automatisoida notaroinnin electron-notarize-paketin avulla, ja macOS 10.15+:n käyttäjät eivät voi avata sovellusta ilman sitä.

Windowsin koodin allekirjoitus

Windows edellyttää luotetulta varmentajalta (CA) hankittua Authenticode-varmennetta, jotta SmartScreen luottaa asennusohjelmaan. Ilman allekirjoitusta käyttäjälle näytetään "Windows suojasi tietokonettasi" -varoitus. Extended Validation (EV) -varmenteet poistavat varoituksen heti, kun taas tavalliset OV-varmenteet rakentavat luottamusta ajan mittaan.

Koontitulosten rakenne

Onnistuneen koonnin jälkeen electron-builder kirjoittaa alustakohtaiset asennusohjelmat dist/-hakemistoon. Sieltä löytyvät macOS:n DMG- tai zip-tiedosto, Windowsin NSIS .exe -tiedosto ja Linuxin AppImage- tai .deb-tiedosto sekä automaattisten päivitysten manifesti latest.yml (tai latest-mac.yml).

Sovelluksen kuvakkeet

Electron-sovellukset tarvitsevat alustakohtaisissa muodoissa olevat kuvakkeet: Linuxille 512x512 PNG-tiedoston, macOS:lle ICNS-tiedoston (useita resoluutioita) ja Windowsille ICO-tiedoston (useita resoluutioita). electron-builder voi luoda kaikki muodot yhdestä 1024x1024 PNG-tiedostosta --icon-lipun avulla.

Automaattiset päivitykset electron-updaterilla

electron-updater-paketti integroituu electron-builderiin ja tarjoaa automaattiset päivitykset. Julkaiskaa koontiversiot GitHub Releasesiin tai S3:een, jolloin electron-updater voi tarkistaa päivitykset käynnistyksen yhteydessä, ladata delta-päivityksen taustalla ja pyytää käyttäjää käynnistämään sovelluksen uudelleen.

Päivitysten tarkistaminen käynnistyksen yhteydessä

Kutsukaa autoUpdater.checkForUpdatesAndNotify()-funktiota main.js-tiedostossa, kun sovellus on valmis. electron-updater hakee latest.yml-manifestin julkaisukohteesta, vertaa versioita ja, jos päivitys on saatavilla, lataa sen ja näyttää natiivin ilmoituksen, kun päivitys on valmis asennettavaksi.

ASAR-arkisto

electron-builder niputtaa sovelluksen JavaScript-tiedostot yhteen ASAR-arkistoon (tar-tiedoston kaltaiseen) jakelua varten. Tämä parantaa käynnistyksen suorituskykyä vähentämällä tiedostojärjestelmähakuja ja vaikeuttaa lähdekoodin suoraa tarkastelua, mutta ei tee siitä mahdotonta.

Natiivimoduulien purkaminen ASAR-arkistosta

Natiivimoduuleja (.node-tiedostoja) ei voi ladata ASAR-arkiston sisältä – ne on purettava tiedostojärjestelmään. Määrittäkää electron-builderissa asarUnpack-asetus ja luetelkaa siinä natiivimoduulien kuviot. Tällöin moduulit sijoitetaan app.asar.unpacked-hakemistoon arkiston rinnalle.

macOS:n notarointivaatimus

Miksi notarointia tarvitaan macOS-jakelussa pelkän koodin allekirjoittamisen lisäksi?

Oppitunnin kertaus

Electron-sovelluksen jakelu edellyttää electron-builderin kohteiden määrittämistä, koodin allekirjoittamista sekä macOS:lle (notarointi mukaan lukien) että Windowsille (Authenticode) ja haluttaessa automaattisten päivitysten määrittämistä electron-updaterilla. ASAR-arkisto niputtaa sovelluksen jakelua varten, ja natiivimoduulit puretaan erikseen. Hyvä CI/CD-putki käsittelee nämä vaiheet automaattisesti alustakohtaisesti.

Aloita maksutta

Opi React tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
88
Oppitunnit
324

Usein kysytyt kysymykset

Onko oppitunti ”Työpöytäalustojen paketointi ja jakelu” ilmainen?

Kyllä – oppitunnin ”Työpöytäalustojen paketointi ja jakelu” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Työpöytäalustojen paketointi ja jakelu”?

Rakentakaa macOS-, Windows- ja Linux-asentimet electron-builderilla sekä koodin allekirjoituksella ja automaattisilla päivityksillä. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Työpöytäalustojen paketointi ja jakelu”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?

Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Electronin arkkitehtuuri: pää- ja renderöintiprosessit
  2. Reactin määrittäminen Electronin kanssa
  3. Prosessien välinen IPC-viestintä
  4. Työpöytäalustojen paketointi ja jakelu
← Takaisin: React Academy