Strumento dev gratuito
Validatore di link universali
Assicurati che i tuoi link aprano l’app. Incolla un dominio per controllare gli Universal Links di iOS e gli App Links di Android, poi ottieni un esito chiaro con i passaggi di correzione da condividere con il team tecnico.
Come funziona
Cosa succede quando qualcuno tocca il tuo link
Nessuna delle due piattaforme interroga il tuo dominio al momento del tocco. Lo controllano quando l’app viene installata, si salvano la risposta e la usano quando qualcuno tocca un link. Per questo un file rotto può restare inosservato per giorni, e uno corretto non ha effetto subito.
iPhone e iPad
apple-app-site-associationAll’installazione
Legge Associated Domains
iOS guarda le voci
applinks:nell’entitlement Associated Domains dell’app.All’installazione
Passa dalla CDN di Apple
La CDN di Apple scarica il file dal tuo dominio e consegna al dispositivo la sua copia in cache.
Al tocco
Confronta il link
iOS confronta dominio e percorso toccati con gli app ID e le regole
pathsocomponentsdi quel file.Risultato
Corrisponde: si apre la tua app
Nessuna corrispondenza o nessun file: Safari apre la pagina
Android
assetlinks.jsonAll’installazione
Legge gli intent filter
Android trova gli intent filter con
autoVerifyper il tuo dominio.All’installazione
Scarica assetlinks.json
Richiede il file in
/.well-known/su ogni host dichiarato. Un redirect conta come errore.All’installazione
Controlla il certificato di firma
Package name e impronta SHA-256 nel file devono corrispondere al certificato che ha firmato l’app installata.
Risultato
Verificato: si apre la tua app
Non verificato: si apre il browser, o un selettore di app sulle versioni più vecchie di Android
Controlli
Cosa controlla questo strumento
Ogni verifica invia fino a dieci richieste: i due file di associazione sul tuo dominio e sul gemello con o senza www, la copia sulla CDN di Apple e la Digital Asset Links API di Google. Ecco cosa guarda.
Due posizioni, due host
Cerca
apple-app-site-associationin/.well-known/e nella root, eassetlinks.jsonin/.well-known/, sia sul tuo dominio sia sulla versione con www.HTTPS e un 200
Riporta il codice HTTP di ogni richiesta, più i timeout e gli errori di connessione che impediscono il caricamento di un file.
Redirect
Segue i redirect, mostra dove è finita ogni richiesta e segnala un URL finale su un altro host o in HTTP semplice.
HTML al posto del JSON
Riconosce una pagina di login, un template di errore o una verifica anti-bot di Cloudflare, Akamai e servizi simili, e mostra l’header Content-Type ricevuto.
JSON valido
Analizza ogni file e, se fallisce, riporta l’errore del parser così sai cosa correggere.
applinks e app ID
Conferma che
applinks.detailsesista ed elenca tutti gli app ID presenti. Inserisci il tuo App ID in Avanzate per verificare che ci sia. I file firmati (PKCS7) vengono riconosciuti, non decodificati.Relation e package name
Controlla che assetlinks.json sia un array JSON con la relation
delegate_permission/common.handle_all_urlsed elenca i package name. Inserisci il tuo package in Avanzate per confrontarlo.Impronta SHA-256
Incolla in Avanzate l’impronta del tuo certificato di firma e il validatore la cerca nel file, con o senza i due punti.
La copia di Apple, la vista di Google
Legge la copia che la CDN di Apple consegna agli iPhone e chiede alla Digital Asset Links API di Google cosa trova per il tuo sito, così puoi confrontarle con il tuo server.
Non hai ancora il file, o il JSON non è valido?Crealo con il generatore di AASA e assetlinks.json
Cosa non può vedere
Il lato app: l’entitlement Associated Domains, gli intent filter, se un certo percorso rientra nelle tue regole paths o components e come si comporta un determinato browser in-app. Provali su un dispositivo reale prima del lancio.
Risoluzione dei problemi
Perché i link aprono ancora il browser
Quasi tutti i casi si riducono a una di queste otto cause. Quelle lato server le vedi nel validatore; le altre emergono solo su un telefono vero.
- 01iOS + Android
Il tocco avviene dentro Instagram, Facebook o TikTok
Funziona da Note o Messaggi, ma dalla bio o da un annuncio si apre una pagina web.
Soluzione
Queste app aprono i link nel loro browser in-app, che spesso si tiene l’URL invece di passarlo a iOS o Android. Prova ogni canale separatamente e assicurati che il link porti comunque in un posto utile se l’app non si apre, come la scheda dello store o il tuo sito web.
Da provare su un dispositivoDeep link da Instagram e TikTok - 02iOS + Android
Il file di associazione fa un redirect
Il file si apre bene nel browser, ma la verifica fallisce.
Soluzione
Apple e Android si aspettano un 200 diretto sull’URL esatto. Togli da
/.well-known/i redirect da http a https, dal dominio nudo a www o per lingua.Visibile nel validatoreI link universali aprono Safari? - 03iOS + Android
Content-Type sbagliato
Il file si carica, ma la piattaforma lo ignora.
Soluzione
Servi entrambi i file come
application/json. Il file AASA non ha estensione, quindi molti server invianoapplication/octet-streamotext/plain.Visibile nel validatoreI link universali aprono Safari? - 04iOS
La CDN di Apple ha ancora il vecchio file
Hai corretto il file, ma gli iPhone continuano ad aprire Safari.
Soluzione
La CDN di Apple serve una copia in cache che resta indietro rispetto al tuo server; il validatore le mostra entrambe. Durante i test aggiungi
?mode=developerall’entitlement e attiva Associated Domains Development nelle impostazioni sviluppatore del dispositivo.Visibile nel validatoreGuida completa ai link universali - 05Android
Manca la chiave di Play App Signing
Le tue build aprono l’app, le installazioni dal Play Store aprono il browser.
Soluzione
Con Play App Signing è Google a firmare l’app che le persone installano. Aggiungi lo SHA-256 che trovi in Play Console, Integrità dell’app, certificato della chiave di firma dell’app. Tieni anche la chiave di caricamento se distribuisci build fuori da Play.
Visibile nel validatoreAndroid App Links non verificati - 06iOS
Il link punta allo stesso dominio della pagina
I pulsanti del tuo sito aprono altre pagine web invece dell’app.
Soluzione
iOS tiene le persone in Safari quando toccano un link universale verso il dominio su cui si trovano già. Sposta i link dell’app su un sottodominio separato, oppure usa uno Smart App Banner sul sito.
Da provare su un dispositivoGuida completa ai link universali - 07iOS
L’utente ha scelto Safari una volta
Il link funziona sul tuo telefono, non su quello di un collega.
Soluzione
Toccare il dominio in alto a destra dopo l’apertura dell’app dice a iOS di preferire Safari per quel dominio. Per tornare indietro, tieni premuto il link e scegli di aprirlo nell’app.
Da provare su un dispositivoI link universali aprono Safari? - 08iOS
L’App ID non corrisponde alla build
Funziona nella build di staging, non in quella di produzione.
Soluzione
La voce deve essere il tuo Team ID più il bundle ID esatto dell’app pubblicata, per esempio
ABCDE12345.com.example.app. Inseriscilo in Avanzate e il validatore lo controlla.Visibile nel validatoreGuida completa ai link universali
Niente idraulica
Link che funzionano e basta
Un link Appy guarda ogni tocco e lo manda nel posto giusto: App Store su iPhone, Google Play su Android, il tuo sito su computer. Attiva i deep link con Pro e chi ha già l’app ci entra direttamente.
- Piano gratuito
- Nessuna carta di credito
- Clic illimitati su ogni piano
- I link continuano a funzionare anche se disdici
Con Enterprise la tua app riceve un dominio di link tutto suo, e Appy ci ospita per te apple-app-site-association e assetlinks.json. Come funziona l’SDK
Domande frequenti
Cos’è il file apple-app-site-association (AASA)?
Un file JSON sul tuo dominio che dice a iOS quali app possono aprire quali link. Si trova in https://tuo-dominio/.well-known/apple-app-site-association, senza estensione .json, ed elenca i tuoi app ID (Team ID più bundle ID) con le regole paths o components che gestiscono.
Dove devono trovarsi i file di associazione?
iOS legge /.well-known/apple-app-site-association e Android legge /.well-known/assetlinks.json, su ogni host che usi nei link. Entrambi devono caricarsi via HTTPS con un 200 diretto, senza redirect e con content type application/json.
Perché i link universali aprono Safari invece della mia app?
O la verifica è fallita (file mancante, rediretto o non valido, oppure un app ID che non corrisponde alla build), o iOS ha scelto Safari di proposito: il tocco veniva da un browser in-app o da una pagina dello stesso dominio, oppure l’utente ha scelto Safari in passato. Esegui prima il validatore; se è tutto a posto, prova questi casi su un dispositivo.
Perché i link nelle mie email di marketing aprono il browser invece dell’app?
Le piattaforme email sostituiscono ogni link con un URL di tracciamento dei clic sul proprio dominio. iOS e Android decidono solo in base a quel primo dominio, e un redirect successivo non può aprire un’app. Passa il validatore alla modalità Link da un’email e incolla un link da un’email di prova: segue i redirect, riconosce la piattaforma email e mostra cosa serve al dominio di tracciamento.
Come controllo il mio assetlinks.json?
Inserisci il dominio qui sopra e apri Avanzate per aggiungere package name e impronta SHA-256. Su un telefono di test, adb shell pm get-app-links com.example.app mostra se Android ha segnato ogni dominio come verificato.
Perché Android dice che la verifica degli App Links è fallita?
Il caso più frequente: l’impronta in assetlinks.json è quella della tua chiave di caricamento, mentre le installazioni dal Play Store sono firmate con la chiave di firma di Google. Seguono redirect, content type sbagliato e protezioni anti-bot su /.well-known/. Dopo aver corretto il file, esegui adb shell pm verify-app-links --re-verify com.example.app.
Quanto ci mette Apple a recepire un AASA modificato?
Non esiste un aggiornamento istantaneo. I dispositivi ricevono il file dalla CDN di Apple, che serve una copia in cache, quindi una correzione sul tuo server impiega un po’ ad arrivare. Il validatore mostra la copia della CDN accanto alla tua. In sviluppo, ?mode=developer nell’entitlement permette al dispositivo di leggere il file direttamente dal tuo server.
I link universali funzionano dentro Instagram, Facebook o TikTok?
Spesso no. Queste app aprono i link nel loro browser in-app, e se il tocco arrivi o meno alla tua app dipende dall’app e dal posizionamento. Prova ogni canale e assicurati che il tuo sito web o la scheda dello store funzionino bene anche da soli.
Il validatore controlla la mia app, gli entitlement o i percorsi?
Legge ciò che restituiscono il tuo server, la CDN di Apple e la Digital Asset Links API di Google. Per un link da un’email controlla anche se le regole del file AASA coprono quel link. Il lato app, cioè l’entitlement Associated Domains e gli intent filter, richiede una prova su un dispositivo reale.
Che differenza c’è tra deep link e link universali?
Un deep link è qualsiasi link che apre una schermata precisa di un’app. Gli Universal Links di iOS e gli App Links di Android ne sono la versione verificata: normali URL HTTPS che aprono l’app se è installata e una pagina web se non lo è.
Serve un account? Posso condividere il risultato?
Non serve alcun account e il validatore è gratuito. Ogni verifica ha il suo URL, che puoi copiare e mandare al tuo sviluppatore. Queste pagine di risultato non vengono indicizzate dai motori di ricerca.
Continua a leggere
Guide per il passo successivo
- Guida completa ai link universaliConfigura file AASA, assetlinks.json e lato app, passo dopo passo.
- I link universali aprono Safari?Una routine di diagnosi ripetibile per i link che finiscono nel browser.
- Android App Links non verificatiLa checklist adb, Play App Signing e le correzioni che fanno verificare Android.
- Deep linking o link universaliCosa fa ciascuno e cosa succede quando l’app non è installata.
- Deep link da Instagram e TikTokCome i browser in-app trattano i link e come portare il traffico social alle installazioni.
- Generatore di QR codeTrasforma un link in un QR code con il tuo brand per stampa, packaging e presentazioni.