← Volver al blog

Guía completa de Universal Links

Todo lo que necesitas saber sobre universal links, deep links y app links para iOS y Android

10 de octubre de 202512 min de lecturaTutorial

Cómo funcionan los Universal Links

El proceso incluye tres componentes clave:

1

Archivo Apple App Site Association (AASA)

Un archivo JSON alojado en tu dominio en /.well-known/apple-app-site-association que indica a iOS qué apps pueden manejar tu dominio.

2

Configuración de la app

Tu app debe configurarse para manejar dominios y patrones de URL específicos en sus entitlements (iOS) o intent filters (Android).

3

Código de manejo de URL

Tu app implementa código para recibir la URL del deep link y navegar a la pantalla o contenido correcto.

Implementación de Universal Links en iOS

Paso 1: Crear el archivo AASA

Crea un archivo llamado apple-app-site-association (sin extensión) con esta estructura: apple-app-site-association

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yourcompany.yourapp",
        "paths": [
          "/products/*",
          "/articles/*",
          "/user/*"
        ]
      }
    ]
  }
}
⚠️

Importante

El archivo debe servirse por HTTPS con un certificado SSL válido. También debe devolver el header Content-Type: application/json.

Paso 2: Configurar tu app iOS

En Xcode, añade la capability Associated Domains con tu dominio:

applinks:yourdomain.com
applinks:www.yourdomain.com

Paso 3: Manejar la URL en tu app

// AppDelegate.swift
func application(_ application: UIApplication,
                 continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    
    guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
          let url = userActivity.webpageURL else {
        return false
    }
    
    // Handle the URL and navigate to appropriate screen
    handleUniversalLink(url)
    return true
}

Implementación de App Links en Android

Paso 1: Crear assetlinks.json

Aloja este archivo en https://yourdomain.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourcompany.yourapp",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
    ]
  }
}]

Paso 2: Actualizar AndroidManifest.xml

<activity android:name=".MainActivity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
        <data android:host="yourdomain.com" />
        <data android:pathPrefix="/products" />
    </intent-filter>
</activity>

Paso 3: Manejar el Intent

// MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    val action = intent.action
    val data = intent.data
    
    if (Intent.ACTION_VIEW == action && data != null) {
        // Handle the deep link
        handleDeepLink(data)
    }
}

Buenas prácticas y errores comunes

Haz esto

  • Usa siempre HTTPS en tu dominio
  • Prueba en dispositivos reales, no solo en simuladores
  • Implementa URLs de fallback para usuarios web
  • Añade seguimiento analítico completo
  • Maneja los edge cases correctamente
  • Mantén actualizados tus archivos AASA/assetlinks

Evita esto

  • No uses redirecciones para archivos AASA/assetlinks
  • No olvides validar la sintaxis JSON
  • No hardcodees la lógica de navegación de la app
  • No asumas que la app siempre estará instalada
  • No omitas pruebas en distintas versiones del SO

Pruebas y depuración

Pruebas en iOS

  • 1. Usa el Validador AASA de Apple
  • 2. Prueba enlaces en Notas, Mensajes o Mail
  • 3. Revisa logs en Xcode Console
  • 4. Verifica la asociación de dominio en Ajustes → Developer

Pruebas en Android

  • 1. Usa adb shell am start -a android.intent.action.VIEW -d "your-url"
  • 2. Prueba en Chrome, Gmail y apps de mensajería
  • 3. Comprueba la verificación con adb shell dumpsys package domain-preferred-apps
  • 4. Monitoriza errores en logcat

Analítica y atribución

Una analítica correcta es clave para entender el rendimiento de tus universal links. Sigue estas métricas:

  • CTR por canal
  • Tasa de apertura de app vs fallback web
  • Costo de adquisición por canal
  • Tasas de conversión del contenido deep-linked
  • Tiempo hasta la primera acción tras el deep link
  • Rendimiento por plataforma (iOS vs Android)

Consejo pro

Usa una plataforma de smart links como Appy para gestionar universal links automáticamente, medir analítica y ofrecer fallbacks. Ahorras semanas de desarrollo y obtienes infraestructura de nivel enterprise.

Probar Appy gratis

Conclusión

Los universal links son esenciales para apps móviles modernas. Ofrecen mejor experiencia de usuario, mejor atribución y funcionamiento confiable entre plataformas. Aunque la implementación exige atención al detalle, los beneficios lo compensan.

Empieza por lo básico, prueba a fondo y mejora según datos reales. Y si quieres evitar la complejidad, considera usar una plataforma como Appy que lo gestiona automáticamente.

Recursos relacionados de Appy

Explora las herramientas de Appy para universal links, deep links y QR codes para acelerar el crecimiento de apps móviles.

Seguir explorando

Guía
Oct 8, 2025
8 min de lectura

Deep Linking vs Universal Links: comparación completa

Comprende las diferencias clave entre deep links y universal links, cuándo usar cada uno y cómo implementarlos correctamente.

deep linking
universal links
comparison
mobile apps
Leer artículo
Resolución de problemas
Mar 7, 2026
11 min de lectura

¿Universal Links abren Safari? Corrige AASA, App Links, redirecciones y headers

Flujo práctico para corregir universal links y app links que abren navegador en lugar de la app.

universal links
app links
aasa
assetlinks
Leer artículo
Migración
Oct 5, 2025
7 min de lectura

Cierre de Firebase Dynamic Links: guía completa de migración a Appy

Firebase Dynamic Links se cierra. Aquí tienes una guía completa para migrar a Appy con cero tiempo de inactividad.

firebase
dynamic links
migration
deep linking
Leer artículo

¿Buscas otra cosa? Explora todos los temas en el blog de Appy.

Evita la complejidad. Usa Appy.

Appy gestiona universal links, deep linking, QR codes y analítica automáticamente. Sin código.

Guía completa de Universal Links para iOS y Android · Appy