Cómo verificar Android App Links para garantizar lanzamientos instantáneos de aplicaciones

opoinstall
2026-07-06
5 min read

Esquema de ingeniería minimalista al estilo suizo de la verificación automática de Android App Links y el SDK de Opoinstall.

¿Cómo verifico los Android App Links en el manifiesto? Verificar Android App Links requiere alojar un archivo assetlinks.json en el directorio .well-known de su dominio, añadir android:autoVerify=“true” a su actividad de inicio en el manifiesto y validar la firma del certificado. Esta verificación nativa evita los cuadros de diálogo de selección de Chrome y la fricción de los popups de URL Schemes antiguos con un 98.7% de estabilidad en deep linking.

En el ámbito del crecimiento móvil y el desarrollo de aplicaciones, la industria considera cada vez más los Android SDK App Links como el estándar de oro para una redirección segura y sin fricciones en dispositivos Android. Cuando Google actualizó el sistema de verificación de paquetes, endureció los estándares de seguridad de los dominios. Sin una verificación exitosa, los enlaces recurren a la renderización web estándar, lo que provoca solicitudes de elección de navegador que afectan a las conversiones de los usuarios.

Seamos realistas: obligar a los usuarios a elegir un navegador durante un proceso de deep linking degrada la experiencia. Necesita un proceso de enlace seguro y verificado que evite la fricción de los diálogos de forma nativa.


El mandato de redirección de Android 12: Por qué los dominios no verificados recurren al cuadro de diálogo de selección

A partir de Android 12, Google impuso requisitos estrictos de autoverificación para los filtros de intent. Si su aplicación declara dominios personalizados en su manifiesto bajo el esquema HTTPS, el sistema operativo intenta verificar cada dominio durante la instalación.

¿La realidad? Un solo fallo de verificación rompe toda la cadena:

  • Cuadro de diálogo del sistema: Si incluso un solo dominio declarado falla en el handshake, Android deshabilita el enrutamiento nativo para todos los dominios en el manifiesto, volviendo a las solicitudes del navegador.
  • Fallback web forzoso: Los dominios no verificados redirigen a los usuarios directamente a Chrome, ignorando sus rutas de deep linking dentro de la aplicación.
  • Ciclos de conversión rotos: Los usuarios se ven obligados a navegar manualmente por su aplicación para encontrar los productos deseados, provocando una pérdida masiva en las campañas.

Para evitar estos fallos de redirección, los desarrolladores deben alojar un archivo de verificación de activos válido en su dominio.


La especificación Digital Asset Links: Formateo del manifiesto assetlinks JSON

La base del deep linking seguro en Android es el manifiesto assetlinks.json. El gestor de paquetes del sistema operativo consulta este archivo a través de una conexión HTTPS segura durante la instalación de la aplicación.

El esquema JSON de assetlinks: Especificación de nombres de paquetes y huellas SHA-256

El archivo assetlinks.json debe residir en el directorio .well-known de su dominio. Su servidor web debe devolver una respuesta HTTP 200 directa con un encabezado content-type de application/json. El archivo declara la asociación entre su dominio y la firma de certificado única de su aplicación.

Consulte el estándar estructural a continuación para formatear su archivo de verificación de activos de Android:

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.opoinstall.travel",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:30:06:22:98:5B:90:75:EF:C4:22:15:30:19:93:33:F4:6D:E9:83:C5:30:06:22:98:5B:90:75"
      ]
    }
  }
]

Declaraciones XML del manifiesto de Android: Configuración de filtros de intent y handshakes de auto-verificación

Para instruir al sistema operativo a iniciar el proceso de verificación, debe actualizar su archivo AndroidManifest.xml. La actividad de inicio debe incluir un filtro de intent específico. Este filtro declara la acción android.intent.action.VIEW, las categorías android.intent.category.DEFAULT y android.intent.category.BROWSABLE, y el atributo android:autoVerify="true".

Consulte la estructura XML estándar a continuación para configurar su manifiesto:

<activity
    android:name=".MainActivity"
    android:exported="true"
    android:launchMode="singleTask">
    
    <!-- Habilitar verificación de dominio automática para Android App Links -->
    <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="http" />
        <data android:scheme="https" />
        <data android:host="travel.opwakeup.com" />
        <data android:host="travel-alternate.opwakeup.com" />
    </intent-filter>
</activity>
Diagrama de ingeniería minimalista al estilo suizo de la obtención de assetlinks.json y la verificación de huellas de certificado SHA-256.

Android App Links vs. Esquemas de URL personalizados: Verificación a nivel de host y alcances de seguridad

Para evaluar cómo se compara la asociación de dominio verificada frente a protocolos personalizados no verificados bajo las restricciones de seguridad modernas de Android, analice la siguiente comparativa:

Métrica arquitectónica Android App Links (Nativo) Custom URL Schemes (Legado) iOS Universal Links
Manifiesto de verificación assetlinks.json (Formato JSON) Ninguno. No requiere archivos de verificación del lado del servidor. apple-app-site-association (JSON plano)
Fricción de redirección Cero. Evita las solicitudes del navegador; lanza la aplicación nativa instantáneamente. Alta. Dispara el selector del sistema operativo y cuadros de diálogo. Cero. Abre el cliente nativo sin problemas ni advertencias del navegador.
Disparador de verificación Verificado por Google Play Services al instalar la aplicación. Sin verificación del sistema; registrado directamente en el manifiesto del cliente. Almacenado en caché y verificado por el proxy CDN global de Apple al instalar.
Fallback de aplicación no instalada Fluido. Redirige a los usuarios sin aplicación instalada suavemente a una tienda web. Deficiente. Provoca errores de "Dirección no válida" a nivel del sistema. Vuelve elegantemente al navegador web, mostrando la página original.

Infografía al estilo suizo que compara la fricción del cuadro de diálogo del navegador frente a los Android App Links verificados.


Implementación de un SDK unificado para automatizar los procesos de verificación dominio-aplicación

Mantener manualmente los manifiestos de assetlinks a través de múltiples subdominios y variantes de compilación es un punto común de fallo de ingeniería. Integrar un framework de medición móvil ligero como Opoinstall automatiza toda la arquitectura de alojamiento del lado del servidor.

Configuración de su dominio de marca en la consola de desarrollador

Su integración comienza mapeando los dominios de sus campañas. Registre su aplicación en la consola de desarrollador para obtener su AppKey. Este token vincula su cliente móvil compilado con su base de datos central de seguimiento de clics web.

Integración del framework SDK del lado del cliente

El siguiente paso requiere integrar nuestro framework SDK móvil de lanzamiento con un clic en sus compilaciones. Esta biblioteca no bloqueante se conecta a los métodos de entrada de su aplicación para interceptar las actividades entrantes del usuario y analizar los payloads contextuales.

Verificación de declaraciones de host activas mediante la API Digital Asset Links de Google

Para verificar que su dominio sirve el manifiesto correctamente, puede consultar la API Digital Asset Links de Google directamente:

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://tudominio.com&relation=delegate_permission/common.handle_all_urls

Esta llamada API programática comprueba si el rastreador de verificación de Google puede leer el nombre de su paquete y las huellas SHA-256 correctamente. Esto garantiza que las configuraciones de su servidor estén totalmente alineadas.


Depuración de fallos de verificación de dominio: Un estudio de caso de una pérdida del 15% en enlaces de aplicaciones móviles

Una importante aplicación de viajes realizó una actualización estándar del sistema. Durante la fase de pruebas, el equipo de QA informó que los enlaces profundos en los correos electrónicos promocionales fallaban en dispositivos Android 12 y 13, obligando a los usuarios a elegir un navegador web en lugar de iniciar la aplicación nativa.

Síntomas anormales: Popups persistentes de selección de navegador en dispositivos Android 12+

Los deep links funcionaban correctamente en dispositivos antiguos. Sin embargo, la estricta política de verificación de Android 12 significaba que, como un solo dominio secundario falló en el handshake, el sistema operativo deshabilitaba los App Links para todos los dominios declarados en el manifiesto. Esto resultó en una caída del 15% en la adquisición de usuarios.

Depuración por CLI a través de Android Debug Bridge y reconciliación de estado

El equipo de ingeniería inició una auditoría técnica. Primero, verificaron que el paquete de la aplicación compilada contuviera los permisos correctos. Ejecutaron una comprobación de permisos desde la línea de comandos en el dispositivo de prueba conectado usando el Android Debug Bridge (ADB):

# Paso 1: Restablecer el estado de verificación de dominio para el paquete objetivo
$ adb shell pm set-app-links --package com.opoinstall.travel 0 all

# Paso 2: Activar manualmente el handshake de auto-verificación del SO
$ adb shell pm verify-app-links --re-verify com.opoinstall.travel

# Paso 3: Consultar el estado de verificación dinámica de sus dominios declarados
$ adb shell pm get-app-links com.opoinstall.travel

La salida de la línea de comandos devolvió un estado state: 1024 (unverified). Esto confirmó que el gestor de paquetes de Android rechazó la asociación dominio-aplicación durante la instalación.

Resolución de bloqueos de redirección HTTPS y desajustes en la lista de declaraciones

Los desarrolladores consultaron el rastreador de verificación de enlaces de activos digitales de Google para aislar el error. Los registros del rastreador revelaron un tiempo de espera en el handshake TLS: el servidor web alojaba el archivo assetlinks.json detrás de un firewall que bloqueaba las IPs automatizadas del rastreador de Google.

Además, el servidor estaba ejecutando una redirección 301 del puerto HTTP a HTTPS. Debido a que el sistema de verificación de Android prohíbe estrictamente las redirecciones HTTP para los App Links, el handshake automático falló.

Para resolver el bloqueo, el equipo configuró su servidor web para devolver una respuesta HTTP 200 directa en el puerto 443 con el encabezado application/json, evitando cualquier redirección HTTP. Para asegurar que la ruta de fallback permaneciera activa, se aseguraron de que el script de redirección del lado del cliente estuviera utilizando la API estándar Google Play Install Referrer para capturar los payloads de instalación.

Auditoría post-migración: 15% de conversión de usuarios recuperada y 98.7% de éxito en la verificación

Después de reinstalar el paquete actualizado, el equipo de ingeniería volvió a ejecutar la herramienta de verificación ADB. El comando devolvió un estado verified.

El SDK interceptó instantáneamente los intents de deep-link sin disparar los cuadros de diálogo de selección. La precisión de la redirección multiplataforma volvió a subir al 98.7%, restaurando con éxito la experiencia de reserva para todos los usuarios de la campaña y protegiendo el retorno de inversión en marketing del cliente.

Lista de verificación de flujo de trabajo de ingeniería minimalista suiza para la depuración de enlaces de aplicaciones con ADB.


Preguntas Frecuentes (FAQ)

How do I verify Android App Links in the manifest?
La verificación de Android App Links requiere alojar un archivo `assetlinks.json` en el directorio `.well-known` de su dominio, añadir `android:autoVerify="true"` a su actividad de inicio en el manifiesto y validar la firma del certificado. Esta verificación nativa evita los cuadros de diálogo de Chrome y la fricción de los antiguos esquemas de URL, con una estabilidad de deep linking del 98.7%.
Why does my Android App Link open in the Chrome browser instead of the native app?
Si un App Link se abre por defecto en el navegador web, significa que el gestor de paquetes de Android no pudo verificar la propiedad de su dominio. Esto suele ocurrir debido a errores de handshake SSL en su servidor, redirecciones HTTP a HTTPS, un archivo `assetlinks.json` mal formado o declaraciones de auto-verificación faltantes en su Manifiesto de Android.
How do I check the App Links verification status on a connected Android test device?
Para comprobar el estado de verificación, conecte su dispositivo Android de prueba vía USB, abra una terminal y ejecute el comando ADB `adb shell pm get-app-links [su_nombre_de_paquete]`. La salida mostrará el estado de verificación exacto (p. ej., `verified`, `legacy_undefined` o `unverified`) para cada dominio declarado.

El futuro de las redirecciones seguras de aplicaciones: Deep Linking en sandbox orientado a la privacidad

A medida que los sistemas operativos móviles ajustan los sandboxes de privacidad, el panorama del deep linking debe evolucionar. La depreciación de los IDs de seguimiento antiguos, como el IDFA, significa que las redirecciones que pasan datos deben depender completamente de la asociación de dominio segura de primera parte. Las plataformas que automatizan el alojamiento de AASA y la validación de firmas seguirán siendo vitales. Al centralizar su infraestructura de enrutamiento en redes SDK seguras y amigables para el desarrollador, protege sus embudos de crecimiento contra futuros cambios de privacidad mientras ofrece una experiencia de usuario fluida y segura.

Share this article