Guideline 2.3.10 (autres plateformes) : retirer les références à Android et à Google Play d'une app web encapsulée
Un refus 2.3.10 signifie qu'App Review a trouvé une autre plateforme mobile dans votre app ou dans votre fiche : un badge Google Play dans le pied de page, « également sur Android » dans la description, ou une capture d'écran avec une barre d'état Android. C'est l'un des refus les plus faciles à corriger, et l'essentiel du travail se fait dans votre app web, pas dans Xcode.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
Garantie d'approbation – ou remboursement sous 14 jours
Aucun codage requis
Paiement unique, mises à jour gratuites
Support humain 24/7
Conçu en Allemagne depuis 2014 · ISO 27001
9:41
Votre app
Votre appDésormais dans votre poche
App Store · Google Play Approuvée
Ce que dit la guideline 2.3.10
La guideline 2.3.10 demande qu'une app reste centrée sur les plateformes Apple qu'elle prend en charge. Ni l'app ni ses métadonnées ne doivent montrer de noms, d'icônes ou d'images d'autres plateformes mobiles ou de boutiques d'apps alternatives, sauf si l'app propose une fonctionnalité interactive spécifique approuvée par Apple. La même règle demande que les métadonnées parlent de l'app elle-même et laissent de côté les informations sans rapport.
Concrètement, « Android », « Google Play », « Play Store », les liens de téléchargement d'APK, le robot Android, les cadres d'appareils Pixel ou Galaxy et les barres système Android n'ont rien à faire dans ce que voit un client de l'App Store, ni dans l'app ni sur sa page produit. Le web n'est pas une plateforme mobile, un ordinateur de bureau non plus : une mention sobre comme « fonctionne aussi dans votre navigateur » passe donc généralement. La 2.3.10 n'est qu'une sous-règle de la section plus large consacrée aux métadonnées ; le guide de la guideline 2.3 couvre les autres.
Ce que dit généralement le message de refus
La note apparaît normalement sous Performance, Accurate Metadata. Elle explique que l'app ou ses métadonnées contiennent des informations sur une plateforme tierce qui ne concernent pas les utilisateurs de l'App Store. Les examinateurs indiquent en général l'endroit (une capture d'écran précise, la description, le texte promotionnel ou un écran de l'app) et joignent souvent une capture de ce qu'ils ont vu. Ils vous demandent de retirer ces références et de resoumettre.
Repérez un détail : le problème se trouve-t-il dans les métadonnées, que vous corrigez dans App Store Connect, ou dans l'app, que vous corrigez sur votre serveur web ? Beaucoup de refus 2.3.10 citent les deux.
Où se cachent les mentions d'Android dans les apps vibe-codées
Badges de boutiques dans le pied de page web
Votre page d'accueil affiche « Télécharger dans l'App Store » à côté de « Disponible sur Google Play ». L'app iOS charge le même pied de page, et l'examinateur voit donc un badge Google Play dans une app iPhone.
Captures d'écran prises sur le mauvais appareil
Réalisées sur un téléphone Android, dans les Chrome DevTools avec un profil Pixel ou dans un outil de maquettes avec un cadre Galaxy. La barre d'état Android, la barre de navigation ou la caméra poinçonnée les trahissent.
Textes de fiche écrits d'abord pour Google Play
La description, le texte promotionnel ou les « Nouveautés » parlent encore d'« Android », du « Play Store » ou d'« APK ». Un champ de mots-clés qui contient « android » est un grand classique.
Pages d'aide et FAQ
Les générateurs d'apps par IA adorent créer une page « Comment installer l'app » avec des étapes pour Android, ou des instructions « Ajouter à l'écran d'accueil » pour Chrome. Chaque page que l'examinateur peut atteindre compte.
Invites d'installation et bannières
Une bannière d'installation PWA, une smart banner « Téléchargez l'app Android » ou une barre « Ouvrir dans l'app » venue d'un outil marketing s'affiche dans l'app iOS elle-même.
Textes d'onboarding et de support
« Fonctionne sur iPhone et Android » dans le carrousel d'onboarding, dans les états vides ou dans les réponses toutes faites d'un widget de chat intégré à l'app.
Je suis très content d'avoir acheté cette application ! Extrêmement facile et excellente documentation. J'ai été en contact avec le service client, ils ont répondu très rapidement et très amicalement. Ils ont résolu ma question en un jour. 10/10 recommanderaient.
La plupart des mentions se trouvent dans du code généré par un outil d'IA : cherchez donc dans le projet plutôt que de cliquer de page en page. Attendez-vous à quelques faux positifs, comme « pixel » dans le CSS. Le texte stocké dans votre base de données ou votre CMS (articles de blog, articles d'aide) n'apparaît pas ici ; cherchez-y séparément.
bash
# À lancer à la racine de votre app web (export Lovable ou Bolt, projet Cursor ou Claude Code)
grep -rniE "android|google ?play|play\.google\.com|play store|\.apk|galaxy|pixel|samsung" \
--include=*.{ts,tsx,js,jsx,html,md,json,vue,svelte} \
--exclude-dir={node_modules,dist,build,.next} .
Corrigez sans rien retirer de votre site web
Les visiteurs du site continuent de voir le badge Google Play ; seule l'app iOS le masque.
Donnez à l'app iOS un user agent reconnaissable
Dans Config.swift, réglez useragent_iphone (et useragent_ipad si l'app tourne sur iPad) sur le user agent iOS par défaut suivi d'un marqueur comme MyAppiOS. Votre app web sait alors qu'elle tourne dans l'app iOS et peut y afficher un contenu neutre, sans référence à une plateforme. Le projet Android propose la même option (USER_AGENT dans Config.java) si vous voulez que l'app Android abandonne aussi son badge App Store.
Masquez les badges et les textes Android dans l'app
Placez les badges du pied de page, les bannières « Téléchargez l'app Android » et les sections d'aide propres à une plateforme derrière une vérification du marqueur (code ci-dessous). Pour une correction rapide sans toucher à l'app web, ajoutez une règle à custom.css dans le projet WebViewGold, qui s'applique à chaque page chargée par l'app (documentation Custom CSS et JavaScript). custom.css est intégré au binaire : cette voie demande donc un nouveau build.
Réécrivez les phrases sur les plateformes au lieu de les supprimer
« Disponible sur iPhone et Android » devient « Disponible sur iPhone et iPad ». « Installer sur Android : touchez le menu... » devient une page d'aide consacrée uniquement à l'app iOS. « Synchronisé sur tous vos appareils » fonctionne partout et ne nomme aucune plateforme.
Refaites les captures d'écran sur iOS
Installez le build TestFlight sur un iPhone (et sur un iPad s'il est pris en charge) ou utilisez le simulateur iOS aux tailles d'écran requises. La barre d'état doit afficher l'heure et les icônes d'iOS : pas de barre de navigation Android, pas de cadre Pixel ou Galaxy. Le guide des captures d'écran et de la fiche donne les tailles et une méthode de capture.
Nettoyez chaque champ de métadonnées
Description, sous-titre, texte promotionnel, mots-clés, « Nouveautés », vidéo d'aperçu de l'app et descriptions des achats intégrés. Retirez « android » et « google play » du champ de mots-clés : ils n'apportent rien à la recherche sur l'App Store et enfreignent en plus la guideline 2.3.7. Le guide ASO vous aide à utiliser cet espace pour des mots-clés qui génèrent des installations.
Vérifiez dans l'app installée, puis répondez
Ouvrez le build TestFlight et visitez chaque page du pied de page et du menu, connecté puis déconnecté. Les modifications web sont en ligne dès que vous déployez : si le binaire était correct, répondez dans le Resolution Center sans nouvel envoi. Si vous avez modifié Config.swift ou custom.css, envoyez d'abord un nouveau build avec un numéro de build plus élevé.
Une seule vérification, deux affichages
Détectez l'app une seule fois et réutilisez l'indicateur partout. Le CSS en commentaire sert de solution de repli dans custom.css quand vous ne pouvez pas modifier l'app web.
javascript
// Config.swift: useragent_iphone = "<user agent iOS par défaut> MyAppiOS"
var isIosApp = navigator.userAgent.indexOf("MyAppiOS") !== -1;
// Exemple React : aucun badge de boutique dans l'app iOS
function StoreBadges() {
if (isIosApp) return null;
return (
<div className="store-badges">
<a href="https://apps.apple.com/app/id0000000000">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.example.app">Google Play</a>
</div>
);
}
/* Solution de repli dans custom.css du projet WebViewGold (s'applique à chaque page chargée par l'app) :
.store-badges, a[href*="play.google.com"], .android-only { display: none !important; }
*/
Ce qui passe et ce qui est signalé
Dans votre app ou votre fiche
Verdict
Meilleure approche
Badge « Disponible sur Google Play »
Signalé
Le masquer dans l'app iOS, le garder sur le site web
« Également disponible sur Android »
Signalé
« Également disponible sur iPad », ou ne rien mettre
Capture d'écran avec une barre d'état ou de navigation Android
Signalé
Capturer depuis le build iOS
Mot-clé « android » ou « play store »
Signalé (2.3.10 et 2.3.7)
Un mot-clé qui décrit ce que fait l'app
« Utilisez-la sur votre ordinateur sur votredomaine.com »
Généralement accepté
Rester informatif, sans allusion à des prix plus bas sur le web (3.1.1)
Bouton « Sign in with Google »
Accepté : un service de connexion, pas une plateforme
« Jouez avec vos amis sur n'importe quel téléphone »
Généralement accepté
Décrire la fonctionnalité sans nommer de plateforme
Modèle de réponse pour le Resolution Center
Listez ce que vous avez retiré et à quel endroit, pour que l'examinateur puisse vérifier chaque point en une minute. Le modèle reste en anglais, la langue de travail des examinateurs.
Réponse dans le Resolution Center (remplacez les parties entre crochets)
Hello App Review team,
Thank you for reviewing [App name], version [1.0] ([build number]).
We have removed all references to other mobile platforms, as requested under Guideline 2.3.10:
1. Screenshots: all screenshots were replaced with captures from the iOS build on [iPhone display size] [and iPad display size]. They show the iOS status bar and no other device frames.
2. Metadata: the description, promotional text, keywords and What's New text no longer mention Android or Google Play.
3. Inside the app: the Google Play badge in the footer, the "Get the Android app" banner and the Android section of the help page are no longer shown in the iOS app. This content is served by our web server, so the change is already live in the build under review. [Or: build [number] contains this change.]
To verify, please scroll to the footer on [Home] and open [Menu > Help].
If anything else should be changed, please let us know and we will fix it right away.
Best regards,
[Name]
[Company], [email]
Checklist avant de resoumettre
La recherche a porté sur le code et sur le contenu de la base de données ou du CMS ; chaque résultat est masqué dans l'app ou réécrit.
Pied de page, menu, centre d'aide, onboarding et états vides vérifiés sur le build TestFlight, connecté et déconnecté.
Aucune mention d'Android, de Google Play, du Play Store ou d'APK dans la description, le sous-titre, le texte promotionnel, les mots-clés et les « Nouveautés ».
Captures d'écran et aperçu de l'app enregistrés depuis le build iOS, sans barres système ni cadres d'appareils Android.
L'icône de l'app ne contient aucune image liée à une plateforme.
Les widgets tiers (chat, bandeau cookies, smart app banners) n'affichent aucune invite Google Play dans l'app.
La réponse dans le Resolution Center liste chaque modification et l'endroit où la constater.
Questions fréquentes
Puis-je mentionner que mon app fonctionne aussi dans un navigateur web ?
En général, oui. Le web et les ordinateurs de bureau ne sont pas des plateformes mobiles, et une courte mention comme « Vos données se synchronisent avec la version web » est courante. Restez informatif et ne vous en servez jamais pour orienter les achats vers le site web, ce qui relève de la guideline 3.1.1.
Un bouton Sign in with Google pose-t-il problème au titre de la 2.3.10 ?
Non. Google Sign-In est un service de connexion, pas une plateforme mobile. Il fait en revanche entrer en jeu la guideline 4.8, qui demande à côté une option équivalente et respectueuse de la vie privée, comme Sign in with Apple.
Mes captures d'écran viennent d'un téléphone Android, mais l'app est identique. Est-ce vraiment un problème ?
Oui, dès qu'un élément Android est visible : icônes de la barre d'état, barre de navigation ou cadre de l'appareil. Les examinateurs comparent les captures à l'app installée, et l'interface système d'Android entraîne immédiatement un constat 2.3.10. Capturez plutôt depuis le build iOS.
Ai-je besoin d'un nouveau build après un refus 2.3.10 ?
Seulement si la correction se trouve dans le binaire, par exemple un user agent modifié dans Config.swift ou un nouveau custom.css. Les métadonnées se modifient dans App Store Connect, et les changements de votre app web sont en ligne dès que vous déployez : dans ces cas, une réponse dans le Resolution Center suffit.
Qu'est-ce que l'exception pour une fonctionnalité interactive approuvée ?
Elle est étroite. Elle vise les apps dotées d'une vraie fonctionnalité qui fonctionne avec une autre plateforme, et App Review décide au cas par cas. Le simple fait d'être disponible sur Android ne suffit pas. Si vous pensez que votre app propose une telle fonctionnalité, décrivez-la dans les notes pour l'examen.
Trois façons de mettre votre app dans les stores
Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.
Faites-le vous-même
$109 par plateforme, paiement unique
La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.
Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.