Validatore di Universal Links e App Links
Incolla il tuo apple-app-site-association o assetlinks.json e scopri cosa non va prima che lo scoprano Apple o Google.
Prima del rilascio
- Servi il file in HTTPS in /.well-known/ su ogni dominio dei link, senza reindirizzamenti.
- Invialo come application/json (apple-app-site-association senza estensione .json).
- Usa il certificato della build che le persone installano: Google Play App Signing ha il suo.
- Dopo aver cambiato il file, reinstalla l’app: i dispositivi lo tengono in cache.
Come funziona
- Il file viene controllato nel browser: struttura, ID delle app, percorsi e impronte dei certificati.
- Un browser non può scaricare file da un altro sito, quindi incolla il contenuto e non l’URL.
- Un file valido è metà del lavoro; la checklist qui sotto copre l’altra metà.
Perché gli Universal Links aprono Safari invece dell’app
iOS scarica apple-app-site-association tramite la CDN di Apple quando l’app viene installata, non quando si tocca un link. Se in quel momento il file mancava, era reindirizzato o malformato, i link si aprono in Safari finché l’app non viene reinstallata o la cache non si aggiorna.
Le cause tipiche: la voce appIDs usa il bundle ID senza il Team ID di 10 caratteri davanti; paths o components non corrispondono al link; il file è servito con un reindirizzamento o dall’host sbagliato (www invece del dominio senza www); oppure l’entitlement Associated Domains dell’app non contiene «applinks:» seguito dall’host esatto.
Un’altra ancora: un link toccato sullo stesso dominio della pagina in cui ti trovi resta in Safari per scelta di design. Prova da Note, Messaggi o un altro sito.
Perché gli Android App Links aprono il browser
Android verifica assetlinks.json per ogni host di un intent filter con android:autoVerify="true". Se la verifica fallisce per uno qualsiasi di essi, nessuno dei link apre l’app automaticamente.
La maggior parte degli errori riguarda le impronte: il file elenca la chiave di debug o di caricamento, mentre le persone installano la build firmata da Google Play App Signing. Copia lo SHA-256 da Play Console, in Integrità dell’app, ed elenca ogni chiave che firma una build installata dalle persone.
Su Android 12 e successivi puoi controllare lo stato con adb shell pm get-app-links seguito dal nome del pacchetto, e rilanciare la verifica dopo aver corretto il file.
Domande frequenti
Dove deve essere ospitato apple-app-site-association?
In https://your-domain/.well-known/apple-app-site-association, in HTTPS, senza reindirizzamenti, servito come application/json e senza estensione .json.
Dove deve essere ospitato assetlinks.json?
In https://your-domain/.well-known/assetlinks.json, in HTTPS, senza reindirizzamenti, servito come application/json.
Perché non posso validare tramite URL?
I browser non permettono a una pagina di leggere file da un altro sito, a meno che quel sito non lo consenta, e di solito questi file non lo consentono. Apri l’URL, copia il contenuto e incollalo qui.
Quale impronta SHA-256 mi serve?
Quella del certificato che firma la build installata dalle persone. Con Google Play App Signing è la chiave di firma dell’app mostrata in Play Console, non la tua chiave di caricamento. Aggiungile entrambe se distribuisci anche build firmate con una tua chiave.
Ho corretto il file ma i link aprono ancora il browser. Perché?
I dispositivi tengono in cache il risultato. Su iOS reinstalla l’app; su Android rilancia la verifica o reinstalla. Controlla anche che gli Associated Domains o gli intent filter dell’app indichino l’host esatto.
Altri strumenti gratuiti
- Generatore di QR code per App Store e Google Play
- Generatore di link per App Store e Google Play
- Test di reindirizzamento dei link intelligenti
- Generatore di apple-app-site-association e assetlinks.json
Un link e un QR code per tutti gli store
SetLinks porta ogni visitatore al suo store e conta ogni clic. Inizia gratis.
Crea un link intelligente