App Link: qué es, principio de funcionamiento y configuración

Autor: IT Sectr Publicado: 2026-05-14 Tiempo de lectura: 9 min

App Link es un mecanismo de Android (Android 6.0+) que abre automáticamente enlaces web en la aplicación instalada, omitiendo el diálogo de selección. El término fue introducido por Google en 2015 junto con Android 6.0 Marshmallow. Según Android Developers, App Link utiliza Digital Asset Links — verificación criptográfica a través de un archivo en el servidor, confirmando que el dominio pertenece al desarrollador de la aplicación.

Puntos clave

  • App Link — un enlace https que abre automáticamente la aplicación sin diálogo de selección
  • Digital Asset Links — archivo JSON assetlinks.json en el servidor que verifica la conexión del dominio con la aplicación
  • Huella SHA256 del certificado — elemento clave de verificación que vincula al desarrollador con el dominio
  • Intent Filter — componente de Android que declara qué enlaces maneja la aplicación
  • Seguridad — App Link elimina el diálogo “Abrir en aplicación o navegador”, aumentando la conversión

App Link (Android App Link) es un enlace HTTPS estándar que, al hacer clic en un dispositivo Android, abre automáticamente la aplicación instalada sin mostrar el diálogo de selección entre navegador y aplicación. Google presentó App Link en Android 6.0 (API 23) como solución al problema del “diálogo de elección”, que reducía la conversión de deep link debido al clic adicional y la confusión del usuario.

La innovación clave: verificación. Android verifica que el dominio realmente pertenece al desarrollador de la aplicación a través de la API Digital Asset Links. Google Play Store verifica App Link al publicar y puede rechazar una actualización si la verificación falla. Esto hace que App Link sea más seguro que Custom URL Scheme: ninguna otra aplicación puede interceptar un enlace a tu dominio.

Digital Asset Links es un protocolo abierto que Google utiliza no solo para App Link, sino también para vincular sitios web con aplicaciones en los resultados de búsqueda, Google Assistant y Smart Lock for Passwords. El protocolo se basa en verificación criptográfica: en assetlinks.json se especifica la huella SHA256 del certificado de firma de la aplicación, lo que elimina la falsificación.

El proceso de funcionamiento de App Link consta de tres etapas: verificación de Digital Asset Links, procesamiento a través de Intent Filter y redirección automática. Cada etapa es obligatoria. Si la verificación falla, Android muestra un diálogo de selección — dicho deep link funciona como de costumbre pero sin la ventaja de la transición automática.

Digital Asset Links (assetlinks.json)

Asset Links es un archivo JSON ubicado en el servidor en https://domain/.well-known/assetlinks.json. El archivo contiene un array de objetos con campos: relation (array de cadenas que describen el tipo de relación), target (objeto con namespace y package_name de la aplicación, así como sha256_cert_fingerprints — array de huellas SHA256 del certificado de firma).

json
// assetlinks.json — configuración mínima de App Link
[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
        "namespace": "android_app",
        "package_name": "com.example.app",
        "sha256_cert_fingerprints": [
            "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:AD:A4:C5:AD:6B:01:14:79:6B:CB:12:6B:21:39:6F:EA"
        ]
    }
}]

La huella SHA256 se obtiene del certificado con el que se firmó la aplicación. Para compilaciones de depuración se utiliza el certificado de depuración estándar de Android, para compilaciones de publicación — el certificado de Google Play Console o el suyo propio. Importante: al cambiar el certificado de firma (por ejemplo, al migrar a App Signing by Google Play), es necesario actualizar assetlinks.json en el servidor, de lo contrario App Link dejará de funcionar.

Intent Filter y verificación

Android verifica App Link al primer clic en un enlace. El sistema descarga assetlinks.json del servidor, compara package_name y la huella SHA256 con el certificado de la aplicación instalada. Si los datos coinciden, Android marca el Intent Filter como verificado, y todos los enlaces posteriores a este dominio se abren automáticamente, sin diálogo.

xml
// AndroidManifest.xml — Intent Filter para App Link
<activity
    android:name=".ui.ProductActivity"
    android:exported="true">
    <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"
            android:host="example.com"
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

autoVerify="true" es un atributo obligatorio que indica a Android verificar assetlinks.json. Sin este atributo, el Intent Filter no se verificará y App Link no se activará. Android soporta múltiples Intent Filter en una misma Activity — para diferentes hosts. El sistema verifica cada host por separado. La verificación se realiza de forma asíncrona y puede tomar hasta 20 segundos en el primer clic.

Redirección automática

Después de una verificación exitosa, Android abre automáticamente la aplicación al hacer clic en cualquier enlace que coincida con el Intent Filter verificado. El usuario no ve un diálogo de selección — la aplicación se abre al instante. Si la aplicación no está instalada, el enlace se abre en el navegador (como una página web normal). Esta es la experiencia de usuario ideal: transición sin problemas sin acciones innecesarias.

Importante: la redirección automática solo funciona para el esquema https. App Link no soporta http (protocolo no seguro). Si un usuario abre manualmente un enlace http (por ejemplo, desde SMS), Android no realiza la verificación y muestra un diálogo de selección. Se recomienda usar https para todos los enlaces que lleven a la aplicación y configurar la redirección HTTP a HTTPS en el servidor.

App Link es la evolución de Deep Link en Android, no un reemplazo. La diferencia entre ellos es fundamental. Deep Link normal (Custom URL Scheme) funciona a través de un Intent Filter con un esquema personalizado (myapp://) y sin autoVerify. Android no verifica si la aplicación está realmente asociada con este esquema — cualquier aplicación puede registrar myapp:// e interceptar enlaces.

App Link resuelve tres problemas de Deep Link. Primero: seguridad — la verificación a través de Digital Asset Links elimina la interceptación de enlaces. Segundo: experiencia de usuario — la ausencia del diálogo de selección aumenta la conversión a la acción objetivo en un 20–40%. Tercero: indexación — Google indexa los enlaces https de App Link y puede mostrarlos en los resultados de búsqueda como enlaces al contenido dentro de la aplicación.

Compatibilidad: App Link funciona en Android 6.0+ (99% de los dispositivos). Para Android 5.x (Lollipop) se utiliza Deep Link normal con diálogo de selección. Por lo tanto, se recomienda soportar ambos mecanismos: App Link para dispositivos modernos y Custom URL Scheme como fallback para versiones antiguas. Un Intent Filter con autoVerify="true" no rompe la compatibilidad hacia atrás — en Android < 6 el atributo se ignora.

CaracterísticaDeep LinkApp Link
EsquemaPersonalizado (myapp://)HTTPS (https://domain)
VerificaciónNoassetlinks.json
Diálogo de selecciónSe muestraRedirección automática
Versión de AndroidAPI 1+API 23+ (6.0+)
Indexación de GoogleNoSí (URL https)

La configuración de App Link requiere tres pasos: configuración del Intent Filter en el manifiesto, colocación de assetlinks.json en el servidor y verificación de la verificación. El primer paso es agregar un Intent Filter con android:autoVerify="true" en AndroidManifest.xml. Es importante especificar el esquema https, el host y las rutas que debe manejar la aplicación. Las rutas pueden contener comodines (*) para subcarpetas.

El segundo paso es crear assetlinks.json. El archivo se puede generar a través de Android Studio (Tools → App Links Assistant). El asistente también ayuda con la depuración y las pruebas. El archivo se coloca en el servidor en /.well-known/assetlinks.json. El servidor debe devolver Content-Type: application/json y ser accesible por HTTPS sin redirecciones. Google Play Console también muestra el estado de verificación de App Link en la sección Publishing.

  1. Agregar Intent Filter con android:autoVerify="true" en AndroidManifest.xml
  2. Obtener la huella SHA256 del certificado (keytool o App Links Assistant)
  3. Crear assetlinks.json con package_name y sha256_cert_fingerprints
  4. Colocar el archivo en /.well-known/assetlinks.json en un servidor HTTPS
  5. Verificar la verificación mediante adb: adb shell dumpsync domain_verification

Pruebas — el tercer paso. Use adb para comprobar: el comando adb shell am start -W -a android.intent.action.VIEW -d “https://example.com/product/42” abre la aplicación. Si se abre el navegador en lugar de la aplicación, verifique assetlinks.json y autoVerify. Android Studio App Links Assistant contiene un probador integrado: muestra el estado de verificación para cada dominio y ruta. Para pruebas automatizadas, use Android Testing Library con Intent Matcher.

Características de implementación

Android 12 (API 31) introdujo cambios en el manejo de App Link. Se agregó una nueva verificación específica por dominio: el sistema verifica cada enlace individualmente, no todo el Intent Filter. Esto mejora la seguridad, pero requiere actualizar el archivo assetlinks.json al agregar nuevas rutas. Android 12 también introdujo Android App Links Assistant incluido con ADB — comandos para gestionar la verificación a través del shell.

Múltiples dominios es un escenario típico para producción. La aplicación puede manejar enlaces de example.com, m.example.com y example.org. Cada dominio necesita un assetlinks.json separado en el servidor correspondiente. En el manifiesto se agregan varios Intent Filter — uno por dominio. Todos los dominios deben ser accesibles por HTTPS y pasar la verificación de forma independiente.

App Link y Jetpack Navigation es la forma recomendada de manejar App Link en aplicaciones Android modernas. Jetpack Navigation admite deep links declarativos en nav_graph.xml o mediante NavDeepLinkRequest. Esto simplifica la navegación: el desarrollador describe qué pantalla se abre para una URL determinada, y el componente Navigation maneja el Intent y restaura la pila de navegación por sí mismo. Google recomienda usar Jetpack Navigation para App Link.

kotlin
// Procesamiento de App Link mediante Jetpack Navigation
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handleDeepLink(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleDeepLink(intent)
    }

    private fun handleDeepLink(intent: Intent) {
        intent.data?.let { uri ->
            navController.handleDeepLink(NavDeepLinkRequest
                .Builder
                .fromUri(uri)
                .build()
            )
        }
    }
}

Google Play Store verifica App Link al publicar. Si el manifiesto contiene un Intent Filter con autoVerify pero assetlinks.json no está disponible o es incorrecto, Google Play puede rechazar la actualización con una advertencia. En la consola de desarrollador (Policy and Programs → App Links) se muestra el estado de verificación de cada dominio. Antes de publicar, verifique siempre el estado — corregirlo después del rechazo de la actualización retrasa el lanzamiento.

Preguntas frecuentes

¿En qué se diferencia App Link de Deep Link en Android?

App Link es un Deep Link con verificación a través de Digital Asset Links. Las principales diferencias: App Link utiliza un esquema https en lugar de uno personalizado, no muestra un diálogo de selección y es indexado por Google. Un Deep Link normal funciona en todas las versiones de Android, pero requiere selección manual de la aplicación.

¿Dónde colocar assetlinks.json?

El archivo se coloca en la raíz del servidor HTTPS en /.well-known/assetlinks.json. El servidor debe devolver Content-Type: application/json. El archivo debe actualizarse al cambiar el certificado de firma o agregar nuevos dominios.

¿Por qué App Link no abre la aplicación automáticamente?

Razones principales: falta android:autoVerify="true" en el Intent Filter, assetlinks.json no está disponible por HTTPS, huella SHA256 incorrecta, certificado de firma diferente (debug vs release). Verifique el estado de verificación mediante adb shell dumpsync domain_verification.

¿Se puede usar App Link sin un dominio propio?

No — App Link requiere un servidor HTTPS con assetlinks.json accesible. Si no tiene un dominio, use Firebase Hosting o GitHub Pages para alojar el archivo. Alternativa: Custom URL Scheme (sin verificación) o Firebase Dynamic Links.

¿App Link funciona en Android 5?

No — App Link es compatible con Android 6.0 (API 23) y superior. En Android 5, Intent Filter con android:autoVerify="true" ignora el atributo y funciona como un Deep Link normal con diálogo de selección. Se recomienda soportar ambos mecanismos para compatibilidad hacia atrás.

Resumen

  • App Link — la evolución de Deep Link para Android: enlace https con transición automática a la aplicación
  • Digital Asset Links — verificación criptográfica a través de assetlinks.json en el servidor
  • Huella SHA256 del certificado de firma — elemento clave que vincula al desarrollador con el dominio
  • android:autoVerify="true" — atributo obligatorio de Intent Filter para activar App Link
  • Seguridad — App Link elimina la interceptación de enlaces por aplicaciones de terceros
  • Google Play Store verifica la verificación de App Link al publicar y rechaza si hay errores
  • Jetpack Navigation — la forma recomendada de manejar App Link con deep links declarativos

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también