DEVLOPN Audit

webcredentials — les 3 lignes qui branchent le trousseau iCloud sur ton app

Associated Domains, apple-app-site-association et les AutofillHints Flutter — la config qui active l'autofill iOS et prépare le terrain pour les passkeys.

Ton app demande encore de taper login + mot de passe. Le trousseau iCloud les connaît déjà. Il manque 3 lignes.

Tu connais cette sensation : tu ouvres une app, et au-dessus du clavier iOS te propose direct ton identifiant. Un coup de Face ID, tu es connecté.

Ça, ce n'est pas magique. C'est webcredentials.

Et la plupart des apps ne le configurent jamais.

Webcredentials — comment iOS propose ton login au-dessus du clavier, sans que l'user tape quoi que ce soit : 3 lignes = zéro saisie

Le principe

Créer un lien de confiance entre ton app et ton domaine, pour qu'iOS accepte de partager les identifiants du trousseau.

Ça se joue en deux endroits :

1️⃣ Côté app

Tu ajoutes l'entitlement Associated Domains :

webcredentials:monapp.fr

2️⃣ Côté serveur

Tu héberges le fichier apple-app-site-association sur :

https://monapp.fr/.well-known/apple-app-site-association

avec ton App ID dans la section webcredentials.

Servi en HTTPS, content-type JSON, sans redirection, sans extension de fichier. Sinon Apple l'ignore en silence.

⚠️ Le piège Flutter

L'association domaine ne suffit pas. Il faut aussi dire à iOS quels champs sont concernés : AutofillHints.username et AutofillHints.password, le tout dans un AutofillGroup.

Et surtout : TextInput.finishAutofillContext() au moment de la soumission, pour déclencher la proposition d'enregistrer le mot de passe.

Beaucoup s'arrêtent à l'entitlement et se demandent pourquoi rien ne remonte.

Le bonus qui vaut le détour

👉 Ce même webcredentials que tu configures en 2 minutes est le prérequis des passkeys.

La brique que tu n'as jamais posée depuis 2017 est devenue la porte d'entrée de l'authentification sans mot de passe.

💡 3 lignes de config = zéro saisie, et le terrain prêt pour les passkeys.