Para servir correctamente los archivos de App Link de iOS y Android, debes configurar tanto tu sitio web como tus aplicaciones móviles. Esto implica crear y alojar archivos específicos en tu servidor web y realizar las configuraciones correspondientes en tus proyectos de iOS y Android.
Enlaces universales de iOS
En el caso de iOS, debes configurar los enlaces universales, que permiten a los usuarios pulsar un enlace a tu sitio web y ser redirigidos sin problemas a tu aplicación instalada.
-
Crea el archivo «
apple-app-site-association»:- Crea un archivo JSON llamado
apple-app-site-association(sin la.jsonextensión). - Este archivo declara qué URL puede gestionar tu aplicación.
- El archivo debe contener un
applinksdiccionario. En su interiorapplinks, incluye unaappsmatriz y unadetailsmatriz. Cada objeto de ladetailsmatriz debe especificar elappID(tu ID de equipo de Apple seguido del identificador de paquete de tu aplicación) y una matriz depathsque tu aplicación pueda gestionar. Puedes utilizar comodines (*y?) para la coincidencia de rutas. - Ejemplo de contenido de «
apple-app-site-association»:json { "applinks": { "apps": [], "details": [ { "appID": "YOUR_TEAM_ID.com.yourcompany.yourapp", "paths": [ "/path/to/content/*", "/another/path/*", "NOT /path/to/exclude" ] } ] } }
- Crea un archivo JSON llamado
-
Aloja el archivo en tu servidor web:
- El
apple-app-site-associationarchivo debe estar alojado en la raíz de tu dominio o dentro del.well-knownsubdirectorio (por ejemplo,https://yourdomain.com/apple-app-site-associationohttps://yourdomain.com/.well-known/apple-app-site-association). - Debe servirse a través de HTTPS con un certificado SSL válido.
- El archivo debe ser accesible directamente sin redireccionamientos HTTP (301 o 302).
- El tipo MIME del archivo debe ser
application/json. - El tamaño del archivo sin comprimir no debe superar los 128 KB.
- Si admite varios dominios o subdominios, cada dominio necesita su propio
apple-app-site-associationarchivo.
- El
-
Configura tu aplicación iOS:
- En Xcode, habilita la función «Dominios asociados» para tu proyecto.
- Añade los dominios que admitirá tu aplicación a la lista de «Dominios asociados», precedidos por
applinks:(por ejemplo,applinks:yourdomain.com). - Implementa los métodos necesarios en el
AppDelegateoSceneDelegatede tu aplicación para gestionar las URL de enlaces universales entrantes.
Enlaces de aplicaciones de Android
En Android, los enlaces de aplicaciones ofrecen una experiencia similar y fluida, permitiendo que los enlaces verificados se abran directamente en tu aplicación sin un cuadro de diálogo de desambiguación.
-
Crea el archivo `
assetlinks.json`:- Crea un archivo JSON llamado
assetlinks.json. - Este archivo establece una asociación de confianza entre tu sitio web y tu aplicación de Android.
- El archivo debe contener una matriz JSON con un objeto que especifique el
relation(por ejemplo,delegate_permission/common.handle_all_urls),target(incluyendonamespacecomoandroid_app, elpackage_name, y elsha256_cert_fingerprintsdel certificado de firma de tu aplicación). - Puedes obtener la huella digital SHA256 utilizando el
keytoolo en la Consola de Google Play si utilizas Play App Signing. - Ejemplo de contenido de `
assetlinks.json`:json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.yourcompany.yourapp", "sha256_cert_fingerprints": ["AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF"] } }]
- Crea un archivo JSON llamado
-
Aloja el archivo en tu servidor web:
- El
assetlinks.jsonarchivo debe estar alojado enhttps://yourdomain.com/.well-known/assetlinks.json. - Debe servirse a través de HTTPS con un certificado SSL válido.
- El archivo debe ser accesible directamente sin redireccionamientos HTTP (301 o 302).
- El tipo MIME del archivo debe ser
application/json. - Si los enlaces de tu aplicación admiten varios dominios de host, debes publicar el
assetlinks.jsonarchivo en cada dominio.
- El
-
Configura tu aplicación de Android:
- Añade un
<intent-filter>a laAndroidManifest.xmlpara las URL que quieras gestionar. - Incluye
android:autoVerify="true"en el<intent-filter>. Esto le indica a Android que verifique el dominio del host. - El
<intent-filter>debería incluirACTION_VIEW,BROWSABLE, yDEFAULTcategorías. - Especifique el
<data>esquema (por ejemplo,https), el host y cualquier prefijo o patrón de ruta opcional. - Ejemplo de filtro de intenciones «
AndroidManifest.xml»: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" android:host="yourdomain.com" android:pathPrefix="/path/to/content" /> </intent-filter> </activity> - Gestiona la
Intenten la actividad de tu aplicación para extraer datos de la URL y navegar al contenido adecuado.
- Añade un
Prácticas recomendadas generales
- HTTPS es obligatorio tanto para los enlaces universales de iOS como para los enlaces de aplicaciones de Android.
- Evita los redireccionamientos al servir estos archivos de asociación.
- Realiza pruebas exhaustivas en dispositivos reales y utiliza herramientas de validación (por ejemplo, la API de enlaces de activos digitales de Google para Android y diversos validadores en línea para archivos AASA de iOS) para garantizar una configuración correcta.
- Asegúrate de que eres el propietario de los dominios para los que estás configurando los enlaces de la aplicación.