การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป
สร้างตัวติดตั้งสำหรับ macOS, Windows และ Linux โดยใช้ electron-builder พร้อมการลงลายเซ็นโค้ดและการอัปเดตอัตโนมัติ
การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
การกำหนดค่า electron-builder
electron-builder เป็นเครื่องมือมาตรฐานสำหรับแพ็กแอป Electron ให้เป็นตัวติดตั้งที่แจกจ่ายได้ การกำหนดค่าจะอยู่ใน package.json ภายใต้คีย์ "build" โดยระบุข้อมูลเมตาของแอป (appId, productName) เส้นทางไอคอน และรูปแบบเป้าหมายสำหรับแต่ละแพลตฟอร์ม
เป้าหมายการสร้างตามแพลตฟอร์ม
electron-builder รองรับ macOS (dmg และ zip), Windows (ตัวติดตั้ง nsis) และ Linux (AppImage และ deb) คุณสามารถกำหนดเป้าหมายหลายแพลตฟอร์มด้วยคำสั่งสร้างเพียงคำสั่งเดียว หรือกำหนดค่า CI ให้สร้างแต่ละแพลตฟอร์มบนเครื่องสร้างที่เป็นระบบปฏิบัติการเดียวกัน เพื่อให้เข้ากันได้ดีที่สุด
การเซ็นโค้ดสำหรับ macOS
macOS ต้องใช้การเซ็นโค้ดด้วยใบรับรอง Apple Developer เพื่อให้ Gatekeeper อนุญาตให้ผู้ใช้เปิดแอปได้โดยไม่แสดงคำเตือนด้านความปลอดภัย electron-builder จะอ่านใบรับรองจากพวงกุญแจของ macOS ระหว่างกระบวนการสร้าง และเซ็นไบนารีทั้งหมดโดยอัตโนมัติ
การรับรองโดย Apple สำหรับ macOS
นอกเหนือจากการเซ็นโค้ดแล้ว macOS รุ่นใหม่ยังต้องมีการรับรองโดย Apple ด้วย ซึ่งเป็นการส่งแอปไปยังบริการรับรองของ Apple เพื่อสแกนหามัลแวร์และออกตั๋วรับรอง electron-builder สามารถทำให้กระบวนการรับรองเป็นอัตโนมัติผ่าน electron-notarize และผู้ใช้ macOS 10.15 ขึ้นไปจะถูกบล็อกไม่ให้เปิดแอปหากไม่มีการรับรองนี้
การเซ็นโค้ดสำหรับ Windows
Windows ต้องใช้ใบรับรอง Authenticode จากหน่วยงานออกใบรับรองที่น่าเชื่อถือ (CA) เพื่อให้ SmartScreen เชื่อถือตัวติดตั้งของคุณ หากไม่มีการเซ็น ผู้ใช้จะเห็นคำเตือน "Windows protected your PC" ใบรับรอง Extended Validation (EV) จะกำจัดคำเตือนนี้ได้ทันที ส่วนใบรับรอง OV มาตรฐานจะสร้างความน่าเชื่อถือเมื่อเวลาผ่านไป
โครงสร้างผลลัพธ์จากการสร้าง
หลังจากสร้างสำเร็จ electron-builder จะเขียนตัวติดตั้งเฉพาะแพลตฟอร์มไว้ในไดเรกทอรี dist/ คุณจะพบไฟล์ DMG หรือ zip สำหรับ macOS ไฟล์ .exe ของ NSIS สำหรับ Windows และไฟล์ AppImage หรือ .deb สำหรับ Linux รวมถึงไฟล์รายการกำกับการอัปเดตอัตโนมัติ latest.yml (หรือ latest-mac.yml)
ไอคอนแอป
แอป Electron ต้องใช้ไอคอนในรูปแบบเฉพาะของแต่ละแพลตฟอร์ม ได้แก่ PNG ขนาด 512x512 สำหรับ Linux ไฟล์ ICNS (หลายความละเอียด) สำหรับ macOS และไฟล์ ICO (หลายความละเอียด) สำหรับ Windows electron-builder สามารถสร้างรูปแบบทั้งหมดจาก PNG ขนาด 1024x1024 ไฟล์เดียวโดยใช้แฟล็ก --icon
การอัปเดตอัตโนมัติด้วย electron-updater
แพ็กเกจ electron-updater ทำงานร่วมกับ electron-builder เพื่อให้บริการอัปเดตอัตโนมัติ เผยแพร่บิลด์ของคุณไปยัง GitHub Releases หรือ S3 แล้ว electron-updater จะตรวจสอบการอัปเดตเมื่อเริ่มต้นระบบ ดาวน์โหลดการอัปเดตส่วนต่างในเบื้องหลัง และแจ้งให้ผู้ใช้เริ่มแอปใหม่
การตรวจสอบการอัปเดตเมื่อเริ่มต้นระบบ
เรียกใช้ autoUpdater.checkForUpdatesAndNotify() ใน main.js หลังจากแอปพร้อมทำงานแล้ว electron-updater จะดึงไฟล์รายการกำกับ latest.yml จากเป้าหมายการเผยแพร่ของคุณ เปรียบเทียบเวอร์ชัน และหากมีการอัปเดต ก็จะดาวน์โหลดการอัปเดตนั้นพร้อมแสดงการแจ้งเตือนแบบเนทีฟเมื่อพร้อมติดตั้ง
คลังจัดเก็บ ASAR
electron-builder จะรวมไฟล์ JavaScript ของแอปพลิเคชันไว้ในคลังจัดเก็บ ASAR เดียว (คล้ายกับไฟล์ tar) เพื่อแจกจ่าย วิธีนี้ช่วยเพิ่มประสิทธิภาพการเริ่มต้นระบบโดยลดการค้นหาในระบบไฟล์ และทำให้การตรวจสอบซอร์สโค้ดโดยตรงทำได้ยากขึ้น (แต่ยังไม่ถึงกับเป็นไปไม่ได้)
การแยกโมดูลเนทีฟออกจาก ASAR
โมดูล Node.js แบบเนทีฟ (ไฟล์ .node) ไม่สามารถโหลดจากภายในคลังจัดเก็บ ASAR ได้ แต่ต้องแยกออกมาไว้ในระบบไฟล์ ให้กำหนดค่า asarUnpack ใน electron-builder เพื่อระบุรูปแบบของโมดูลเนทีฟ ซึ่งจะนำโมดูลเหล่านั้นไปไว้ในไดเรกทอรี app.asar.unpacked ข้างคลังจัดเก็บ
ข้อกำหนดการรับรองโดย Apple สำหรับ macOS
เหตุใดการแจกจ่ายแอปสำหรับ macOS จึงต้องมีการรับรองโดย Apple นอกเหนือจากการเซ็นโค้ด
สรุปบทเรียน
การแจกจ่ายแอป Electron ต้องกำหนดค่าเป้าหมายของ electron-builder เซ็นโค้ดสำหรับทั้ง macOS (พร้อมการรับรองโดย Apple) และ Windows (ด้วย Authenticode) และอาจตั้งค่าการอัปเดตอัตโนมัติด้วย electron-updater คลังจัดเก็บ ASAR จะรวมแอปของคุณเพื่อการแจกจ่าย โดยแยกโมดูลเนทีฟออกมาไว้ต่างหาก กระบวนการ CI/CD ที่มีประสิทธิภาพจะจัดการขั้นตอนเหล่านี้โดยอัตโนมัติสำหรับแต่ละแพลตฟอร์ม
คำถามที่พบบ่อย
บทเรียน “การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป”
สร้างตัวติดตั้งสำหรับ macOS, Windows และ Linux โดยใช้ electron-builder พร้อมการลงลายเซ็นโค้ดและการอัปเดตอัตโนมัติ คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สถาปัตยกรรมอิเล็กตรอน: กระบวนการหลักและกระบวนการแสดงผล
- การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน
- การสื่อสาร IPC ระหว่างกระบวนการ
- การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป