Files
NoIdle/BUILD_CLIENTE.md

281 lines
5.9 KiB
Markdown
Raw Normal View History

# 🔨 Como Compilar o Cliente NoIdle Atualizado
## 📋 Pré-requisitos
### No Windows (Recomendado para compilar para Windows):
1. **Python 3.8 ou superior**
```powershell
python --version
```
2. **Instalar dependências:**
```powershell
pip install pyinstaller pywin32 psutil requests pystray pillow schedule
```
---
## 🚀 Método 1: Compilação Simples (Windows)
### Passo 1: Instalar PyInstaller
```powershell
pip install pyinstaller
```
### Passo 2: Compilar
```powershell
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
```
### Passo 3: Resultado
O executável estará em: `dist\NoIdle.exe`
---
## 🎯 Método 2: Compilação com Configurações Otimizadas
### Criar arquivo de spec personalizado:
```powershell
# Gerar spec inicial
pyi-makespec --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
# Editar NoIdle.spec conforme necessário (ver abaixo)
# Compilar usando o spec
pyinstaller NoIdle.spec
```
---
## 📄 Arquivo NoIdle.spec (Personalizado)
```python
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['CLIENTE_CORRIGIDO.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[
'win32timezone',
'pystray._win32',
'PIL._tkinter_finder',
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='NoIdle',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False, # Sem janela de console
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=None, # Adicione caminho do ícone se tiver: 'icon.ico'
version_file=None, # Adicione arquivo de versão se tiver
)
```
---
## 🎨 Método 3: Com Ícone Personalizado
Se você tiver um ícone (`noidle.ico`):
```powershell
pyinstaller --onefile --windowed --name NoIdle --icon=noidle.ico CLIENTE_CORRIGIDO.py
```
---
## 🔧 Método 4: Build Script PowerShell (Automatizado)
Use o script `BUILD_NOIDLE.ps1` (criado abaixo):
```powershell
.\BUILD_NOIDLE.ps1
```
---
## 📦 Compilação Cross-Platform (Linux → Windows)
Se você está no Linux e quer compilar para Windows:
### Opção A: Wine + PyInstaller (Complexo)
```bash
# Instalar Wine
sudo apt install wine wine64
# Instalar Python no Wine
wine python-installer.exe
# Compilar (pode ter problemas)
wine python -m PyInstaller --onefile --windowed CLIENTE_CORRIGIDO.py
```
### Opção B: Docker (Recomendado)
```bash
# Usar container Windows
docker run --rm -v $(pwd):/src cdrx/pyinstaller-windows:python3 \
"pip install pywin32 psutil requests pystray pillow schedule && \
pyinstaller --onefile --windowed --name NoIdle /src/CLIENTE_CORRIGIDO.py"
```
### Opção C: GitHub Actions (Automático)
Use o workflow criado em `.github/workflows/build.yml` (ver abaixo)
---
## 🧪 Testar o Executável
### Teste 1: Executar normalmente
```powershell
.\NoIdle.exe
```
Deve abrir janela de ativação (se não estiver ativado)
### Teste 2: Modo silencioso
```powershell
.\NoIdle.exe --silent
```
Deve rodar em segundo plano (só funciona se já ativado)
### Teste 3: Verificar processo
```powershell
Get-Process -Name "NoIdle"
```
### Teste 4: Verificar tamanho
```powershell
Get-Item .\NoIdle.exe | Select-Object Name, Length, LastWriteTime
```
Tamanho esperado: 15-30 MB (dependendo das dependências)
---
## 🐛 Troubleshooting
### Erro: "Module not found"
```powershell
# Instalar todas as dependências novamente
pip install --force-reinstall pywin32 psutil requests pystray pillow schedule
```
### Erro: "Failed to execute script"
```powershell
# Compilar com console para ver erros
pyinstaller --onefile --console --name NoIdle-debug CLIENTE_CORRIGIDO.py
.\NoIdle-debug.exe
```
### Erro: "Access denied" ao compilar
```powershell
# Executar PowerShell como Administrador
# Ou desabilitar antivírus temporariamente
```
### Executável muito grande
```powershell
# Usar UPX para comprimir
pip install pyinstaller[encryption]
pyinstaller --onefile --windowed --name NoIdle --upx-dir=C:\upx CLIENTE_CORRIGIDO.py
```
---
## 📊 Comparação de Métodos
| Método | Tamanho | Velocidade | Dificuldade |
|--------|---------|------------|-------------|
| PyInstaller --onefile | ~20 MB | Médio | Fácil ⭐ |
| PyInstaller + UPX | ~15 MB | Médio | Fácil ⭐ |
| PyInstaller + spec | ~20 MB | Rápido | Médio ⭐⭐ |
| Docker | ~20 MB | Lento | Difícil ⭐⭐⭐ |
---
## 🎯 Recomendação
**Para build rápido e simples:**
```powershell
pip install pyinstaller pywin32 psutil requests pystray pillow schedule
pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py
```
**Resultado:** `dist\NoIdle.exe` pronto para distribuir!
---
## 📝 Checklist de Build
- [ ] Python instalado (3.8+)
- [ ] Todas as dependências instaladas
- [ ] PyInstaller instalado
- [ ] CLIENTE_CORRIGIDO.py está na pasta atual
- [ ] Executar comando de build
- [ ] Testar o executável gerado
- [ ] Verificar tamanho do arquivo
- [ ] Testar em máquina limpa (sem Python)
- [ ] Testar modo normal e `--silent`
---
## 🚀 Distribuição
Após compilar:
1. **Teste local:** Execute em sua máquina
2. **Teste em VM:** Teste em Windows limpo
3. **Distribua:** Envie para clientes
4. **Forneça scripts:** Junto com `VERIFICAR_E_CORRIGIR_NOIDLE.ps1`
---
## 📦 Empacotamento Completo
Para distribuir um pacote completo:
```
NoIdle-v1.0/
├── NoIdle.exe
├── CONFIGURAR_AUTOSTART_NOIDLE.ps1
├── VERIFICAR_E_CORRIGIR_NOIDLE.ps1
├── GUIA_RAPIDO_AUTOSTART.md
└── LEIA_PRIMEIRO.md
```
Comprimir em: `NoIdle-v1.0.zip`
---
**Pronto para compilar! 🚀**