Pular para o conteúdo principal

🏠 > Desenvolvimento > Construção

Construindo o Megacubo IPTV Player

Este guia fornece instruções para construir instaladores do player IPTV para Windows IPTV app, Linux IPTV software e macOS IPTV player usando o electron-builder.

Pré-requisitos

Requisitos para construir o player IPTV

Certifique-se de ter Node.js (versão 18 ou superior) e npm instalados em seu sistema para construir o aplicativo de streaming IPTV.

Dependências do sistema

Windows

Para builds no Windows, você precisa de:

# Nenhuma dependência adicional do sistema é necessária para builds básicos
# Para builds MSI, certifique-se de ter o Windows SDK instalado

macOS

Para builds no macOS, você precisa das Ferramentas de Linha de Comando do Xcode:

xcode-select --install

Linux

Para construir diferentes formatos de instalador Linux, você precisa instalar as seguintes dependências:

Ubuntu/Debian
sudo apt update
sudo apt install -y \
flatpak \
flatpak-builder \
snapd \
snapcraft \
fuse \
libnss3-dev \
libatk-bridge2.0-dev \
libdrm2 \
libxkbcommon-dev \
libxcomposite-dev \
libxdamage-dev \
libxrandr-dev \
libgbm-dev \
libxss1 \
libasound2-dev \
libgtk-3-dev \
libgconf-2-4 \
rpm \
dpkg-dev
Fedora/RHEL/CentOS
sudo dnf install -y \
flatpak \
flatpak-builder \
snapd \
snapcraft \
fuse \
libnss3-devel \
libatk-bridge2.0-devel \
libdrm-devel \
libxkbcommon-devel \
libXcomposite-devel \
libXdamage-devel \
libXrandr-devel \
libgbm-devel \
libXScrSaver-devel \
alsa-lib-devel \
gtk3-devel \
GConf2-devel \
rpm-build
Arch Linux
sudo pacman -S \
flatpak \
flatpak-builder \
snapd \
fuse2 \
nss \
atk \
libdrm \
libxkbcommon \
libxcomposite \
libxdamage \
libxrandr \
libgbm \
libxss \
alsa-lib \
gtk3 \
gconf \
rpm-tools

Configuração do Flatpak (somente Linux)

Após instalar o flatpak, adicione o repositório Flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.freedesktop.Platform//23.08
flatpak install flathub org.freedesktop.Sdk//23.08
flatpak install flathub org.electronjs.Electron2.BaseApp

Configuração do Snap (somente Linux)

Certifique-se de que o snapd esteja em execução:

sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

Instalando dependências do Node.js

npm install

Nota: Se encontrar problemas de espaço em disco durante a instalação, considere limpar o cache do npm:

npm cache clean --force

Preparando o projeto

Antes de construir, é necessário preparar o projeto (compilar e empacotar o código):

npm run prepare

Este comando:

  • Compila arquivos TypeScript/JavaScript
  • Empacota o código do aplicativo
  • Gera os ativos necessários em www/nodejs/dist/
  • Prepara tudo que é necessário para o electron-builder

Importante: Sempre execute npm run prepare antes de qualquer comando de build. Builds otimizados exigem esse passo para funcionar corretamente.

Comandos de build

Builds otimizados (recomendado)

Todas as plataformas

npm run build:electron:all

Plataformas específicas

npm run build:electron:win # Windows MSI installer (~100MB)
npm run build:electron:linux # Linux AppImage (~100MB)
npm run build:electron:mac # macOS DMG (~100MB)

Tipos de instaladores:

  • MSI: instalador Windows com desinstalador no Painel de Controle
  • AppImage: aplicação portátil Linux que funciona na maioria das distribuições
  • DMG: imagem de disco para macOS

Builds otimizados (apenas disponíveis)

⚠️ AVISO: Builds otimizados estão disponíveis para evitar a geração acidental de instaladores muito grandes (~4GB).

# Todas as plataformas
npm run build:electron:all

# Plataformas específicas
npm run build:electron:linux # Linux AppImage
npm run build:electron:win # Windows MSI
npm run build:electron:mac # macOS DMG

Estrutura dos arquivos gerados

Após o build, os instaladores serão criados no diretório dist/:

Windows

dist/
├── megacubo-17.6.2.msi # Instalador MSI (recomendado)
└── megacubo Setup 17.6.2.exe # Instalador NSIS

Linux

dist/
├── Megacubo-17.6.2.AppImage # AppImage (recomendado)
├── megacubo_17.6.2_amd64.snap # Snap
├── tv.megacubo.app.flatpak # Flatpak
├── megacubo_17.6.2_amd64.deb # Debian/Ubuntu
└── megacubo-17.6.2.x86_64.rpm # Fedora/RHEL

macOS

dist/
├── Megacubo-17.6.2.dmg # DMG (recomendado)
└── Megacubo-17.6.2-mac.zip # arquivo ZIP

Solução de problemas