Ce que cela signifie
android:usesCleartextTraffic vaut true par défaut pour les applications ciblant l'API 27 ou moins, et false à partir de l'API 28. Sur Android 7.0 et plus, une configuration de sécurité réseau, lorsqu'elle existe, prime sur l'attribut du manifeste.
Ce n'est pas une règle d'envoi de Google Play, le contrôle la signale donc en avertissement : une application qui autorise le clair pour tous les domaines envoie toute requête HTTP sous une forme que n'importe qui sur le chemin réseau peut lire ou modifier.
Échéance
Pas de date propre au store. La valeur par défaut de la plateforme a changé avec Android 9 (API 28).
Corriger
1. Passer en HTTPS
Remplacez les URL de base en http:// par https://, y compris dans la configuration distante, le contenu des WebView et les réglages des SDK tiers.
2. Si un hôte doit rester en HTTP, n'autoriser que lui
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="false" />
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">legacy.example.com</domain>
</domain-config>
</network-security-config><application
android:networkSecurityConfig="@xml/network_security_config"
... >3. Retirer l'autorisation globale
Supprimez android:usesCleartextTraffic="true" et tout <base-config cleartextTrafficPermitted="true">. Pour les serveurs de développement locaux, placez l'exception dans une configuration réservée au debug (src/debug/res/xml/).
Vérifier avant de soumettre
Déposez l'APK, AAB ou lot d'APK fractionnés (XAPK, APKS, APKM) sur la page de contrôle des stores. Elle exécute PLAY-CLEARTEXT avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé. Le même moteur tourne hors ligne dans la CLI Narvy et renvoie le code 1 quand un point bloquant est trouvé, ce qui permet de bloquer un job de CI.
narvy store-check app-release.aab --lang frQuestions fréquentes
Google Play refusera-t-il mon application parce qu'elle autorise le clair ?
Pas pour ce seul motif. C'est une faiblesse de sécurité, pas une règle d'envoi : c'est pourquoi le contrôle la signale en avertissement et non en point bloquant.
Pourquoi mon application est-elle signalée alors que je n'ai jamais défini usesCleartextTraffic ?
Soit targetSdkVersion vaut 27 ou moins, et la valeur par défaut de la plateforme autorise le clair, soit une configuration de sécurité réseau (la vôtre ou une ressource de bibliothèque fusionnée) contient un base-config qui l'autorise. Les preuves du rapport désignent le fichier.