Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Distribución de Escritorio

Fenfa distribuye aplicaciones de escritorio (macOS, Windows, Linux) mediante descargas directas de archivos. Los usuarios de escritorio visitan la página del producto, hacen clic en el botón de descarga y reciben el archivo instalador para su plataforma.

Formatos Soportados

PlataformaFormatos ComunesNotas
macOS.dmg, .pkg, .zipDMG para imágenes de disco, PKG para instaladores, ZIP para bundles de apps
Windows.exe, .msi, .zipEXE para instaladores, MSI para Windows Installer, ZIP para portable
Linux.deb, .rpm, .appimage, .tar.gzDEB para Debian/Ubuntu, RPM para Fedora/RHEL, AppImage para universal

Configurar Variantes de Escritorio

Crea variantes para cada combinación de plataforma y arquitectura que soportes:

macOS

bash
# Apple Silicon
curl -X POST http://localhost:8000/admin/api/products/prd_abc123/variants \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "macos",
    "display_name": "macOS (Apple Silicon)",
    "identifier": "com.example.myapp",
    "arch": "arm64",
    "installer_type": "dmg",
    "min_os": "12.0"
  }'

# Intel
curl -X POST http://localhost:8000/admin/api/products/prd_abc123/variants \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "macos",
    "display_name": "macOS (Intel)",
    "identifier": "com.example.myapp",
    "arch": "x86_64",
    "installer_type": "dmg",
    "min_os": "12.0"
  }'

Binario Universal

Si compilas un binario universal de macOS, crea una única variante con arch: "universal" en lugar de variantes arm64 y x86_64 separadas.

Windows

bash
curl -X POST http://localhost:8000/admin/api/products/prd_abc123/variants \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "windows",
    "display_name": "Windows",
    "identifier": "com.example.myapp",
    "arch": "x64",
    "installer_type": "exe",
    "min_os": "10"
  }'

Linux

bash
# DEB for Debian/Ubuntu
curl -X POST http://localhost:8000/admin/api/products/prd_abc123/variants \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "linux",
    "display_name": "Linux (DEB)",
    "identifier": "com.example.myapp",
    "arch": "x86_64",
    "installer_type": "deb"
  }'

# AppImage (universal)
curl -X POST http://localhost:8000/admin/api/products/prd_abc123/variants \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "linux",
    "display_name": "Linux (AppImage)",
    "identifier": "com.example.myapp",
    "arch": "x86_64",
    "installer_type": "appimage"
  }'

Detección de Plataforma

La página de producto de Fenfa detecta el sistema operativo del visitante via User-Agent y resalta el botón de descarga correspondiente. Los usuarios de escritorio ven la variante de su plataforma en primer lugar, con otras plataformas disponibles debajo.

Subir Builds de Escritorio

La subida funciona igual que para plataformas móviles:

bash
curl -X POST http://localhost:8000/upload \
  -H "X-Auth-Token: YOUR_UPLOAD_TOKEN" \
  -F "variant_id=var_macos_arm64" \
  -F "[email protected]" \
  -F "version=2.0.0" \
  -F "build=200" \
  -F "changelog=Native Apple Silicon support"

Sin Detección Automática para Escritorio

A diferencia de los archivos IPA de iOS y APK de Android, los binarios de escritorio (DMG, EXE, DEB, etc.) no contienen metadatos estandarizados que Fenfa pueda extraer automáticamente. Siempre proporciona version y build explícitamente al subir builds de escritorio.

Ejemplo de Integración con CI/CD

Un flujo de trabajo de GitHub Actions que sube builds para todas las plataformas de escritorio:

yaml
jobs:
  upload:
    strategy:
      matrix:
        include:
          - platform: macos
            variant_id: var_macos_arm64
            file: dist/MyApp-arm64.dmg
          - platform: windows
            variant_id: var_windows_x64
            file: dist/MyApp-Setup.exe
          - platform: linux
            variant_id: var_linux_x64
            file: dist/MyApp.AppImage
    steps:
      - name: Upload to Fenfa
        run: |
          curl -X POST ${{ secrets.FENFA_URL }}/upload \
            -H "X-Auth-Token: ${{ secrets.FENFA_UPLOAD_TOKEN }}" \
            -F "variant_id=${{ matrix.variant_id }}" \
            -F "app_file=@${{ matrix.file }}" \
            -F "version=${{ github.ref_name }}" \
            -F "build=${{ github.run_number }}"

Siguientes Pasos

Released under the Apache-2.0 License.