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

Descripción General de Distribución ​

Fenfa proporciona una experiencia de distribución unificada para todas las plataformas. Cada producto obtiene una página de descarga pública que detecta automáticamente la plataforma del visitante y muestra el botón de descarga apropiado.

Cómo Funciona la Distribución ​

mermaid
sequenceDiagram
    participant User as Usuario Final
    participant Page as Página del Producto
    participant Fenfa as Servidor Fenfa
    participant Storage as Almacenamiento de Archivos

    User->>Page: Visitar /products/:slug
    Page->>Page: Detectar plataforma (iOS/Android/Escritorio)
    Page->>User: Mostrar botón de descarga específico de plataforma

    alt iOS
        User->>Fenfa: Tocar Instalar
        Fenfa->>User: Redirección itms-services://
        User->>Fenfa: GET /ios/:id/manifest.plist
        Fenfa->>User: Devolver manifest XML
        User->>Storage: Descargar IPA
    else Android
        User->>Fenfa: Tocar Descargar
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: Descargar APK
    else Desktop
        User->>Fenfa: Hacer clic en Descargar
        Fenfa->>Storage: GET /d/:releaseID
        Storage->>User: Descargar binario
    end

Página de Descarga del Producto ​

Cada producto publicado tiene una página pública en /products/:slug. La página incluye:

  • Icono y nombre de la app de la configuración del producto
  • Detección de plataforma -- La página usa el User-Agent del navegador para mostrar el botón de descarga correcto primero
  • Código QR -- Generado automáticamente para escaneo móvil fácil
  • Historial de versiones -- Todas las versiones de la variante seleccionada, las más recientes primero
  • Changelogs -- Notas por versión mostradas en línea
  • Múltiples variantes -- Si un producto tiene variantes para múltiples plataformas, los usuarios pueden cambiar entre ellas

Distribución Específica por Plataforma ​

PlataformaMétodoDetalles
iOSOTA via itms-services://Manifest plist + descarga directa de IPA. Requiere HTTPS.
AndroidDescarga directa de APKEl navegador descarga el APK. El usuario habilita "Instalar desde fuentes desconocidas".
macOSDescarga directaArchivos DMG, PKG o ZIP descargados via navegador.
WindowsDescarga directaArchivos EXE, MSI o ZIP descargados via navegador.
LinuxDescarga directaArchivos DEB, RPM, AppImage o tar.gz descargados via navegador.

Enlaces de Descarga Directa ​

Cada versión tiene una URL de descarga directa:

https://your-domain.com/d/:releaseID

Esta URL:

  • Devuelve el archivo binario con los encabezados Content-Type y Content-Disposition correctos
  • Soporta solicitudes HTTP Range para descargas reanudables
  • Incrementa el contador de descargas
  • Funciona con cualquier cliente HTTP (curl, wget, navegadores)

Seguimiento de Eventos ​

Fenfa rastrea tres tipos de eventos:

EventoDisparadorDatos Rastreados
visitEl usuario abre la página del productoIP, User-Agent, variante
clickEl usuario hace clic en un botón de descargaIP, User-Agent, ID de versión
downloadEl archivo se descarga efectivamenteIP, User-Agent, ID de versión

Los eventos pueden verse en el panel de administración o exportarse como CSV:

bash
curl -o events.csv http://localhost:8000/admin/exports/events.csv \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN"

Requisito de HTTPS ​

iOS Requiere HTTPS

La instalación OTA de iOS via itms-services:// requiere que el servidor use HTTPS con un certificado TLS válido. Para pruebas locales, puedes usar herramientas como ngrok o mkcert. Para producción, usa un proxy inverso con Let's Encrypt. Ver Despliegue en Producción.

Guías de Plataforma ​

Released under the Apache-2.0 License.