Appy

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.

Esegui una validazione
Incolla un dominio o URL e valida la configurazione di apertura app.

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-association
  1. All’installazione

    Legge Associated Domains

    iOS guarda le voci applinks: nell’entitlement Associated Domains dell’app.

  2. 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.

  3. Al tocco

    Confronta il link

    iOS confronta dominio e percorso toccati con gli app ID e le regole paths o components di quel file.

  4. Risultato

    Corrisponde: si apre la tua app

    Nessuna corrispondenza o nessun file: Safari apre la pagina

Android

assetlinks.json
  1. All’installazione

    Legge gli intent filter

    Android trova gli intent filter con autoVerify per il tuo dominio.

  2. All’installazione

    Scarica assetlinks.json

    Richiede il file in /.well-known/ su ogni host dichiarato. Un redirect conta come errore.

  3. 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.

  4. Risultato

    Verificato: si apre la tua app

    Non verificato: si apre il browser, o un selettore di app sulle versioni più vecchie di Android

Il validatore copre la parte server di entrambe le catene: se ogni file è dove iOS e Android lo cercano, e se contiene ciò che devono leggere.

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-association in /.well-known/ e nella root, e assetlinks.json in /.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.details esista 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_urls ed 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.

  1. 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
  2. 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?
  3. 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 inviano application/octet-stream o text/plain.

    Visibile nel validatoreI link universali aprono Safari?
  4. 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=developer all’entitlement e attiva Associated Domains Development nelle impostazioni sviluppatore del dispositivo.

    Visibile nel validatoreGuida completa ai link universali
  5. 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
  6. 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
  7. 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?
  8. 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.