Aller au contenu
WebViewGold Du vibe coding à l'App Store
Français
Obtenir WebViewGold

Refus App Store

Guideline 5.1.1(v) (connexion à un compte) : quand votre app peut exiger une connexion, et comment ajouter un mode invité

Si votre app oblige les gens à créer un compte avant d'utiliser des fonctionnalités qui n'ont rien à voir avec un compte, Apple la refuse au titre de la 5.1.1(v). Les générateurs d'apps par IA placent par défaut toute l'app derrière une connexion : ce refus est donc fréquent. La solution : ouvrez les parties qui n'ont pas besoin de compte, gardez la connexion pour celles qui en ont besoin, et indiquez clairement dans les notes pour l'examen ce qui relève de chaque catégorie.

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

Ce que dit la 5.1.1(v)

La partie de la guideline 5.1.1 consacrée à la connexion aux comptes indique qu'une app sans fonctionnalités importantes basées sur un compte doit pouvoir être utilisée sans connexion. Les apps ne peuvent pas exiger d'informations personnelles pour fonctionner, sauf si elles sont directement liées à la fonctionnalité principale ou exigées par la loi. Les apps qui permettent de créer un compte doivent proposer la suppression du compte dans l'app. Et si la fonction principale n'est pas liée à un réseau social précis, les gens doivent pouvoir utiliser l'app sans s'y connecter ; récupérer des données de profil, partager et inviter des amis ne comptent pas comme des fonctions principales.

Les autres parties de la 5.1.1 (politique de confidentialité, descriptions d'usage, minimisation des données) sont traitées dans le guide de confidentialité 5.1.1. Cette page porte sur le mur de connexion.

Ce que dit généralement le message de refus

La note indique généralement que l'app oblige les utilisateurs à s'inscrire ou à se connecter avant d'accéder à des fonctionnalités qui ne sont pas basées sur un compte, et suggère de laisser les utilisateurs se servir librement de ces fonctionnalités en n'exigeant l'inscription que pour celles qui sont propres au compte. Une variante fréquente indique que l'app exige des informations personnelles, comme un numéro de téléphone, une date de naissance ou un genre, dont sa fonction principale n'a pas besoin. Une autre variante concerne les achats : l'app impose l'inscription avant tout achat intégré qui n'est pas lié à un compte.

Quelles fonctionnalités peuvent se trouver derrière une connexion

FonctionnalitéBasée sur un compte ?Derrière une connexion ?
Parcourir un catalogue, lire des articles, consulter des recettesNonNon, rendez-la publique
Calculatrices, convertisseurs, générateurs, démo IA gratuite limitéeNonNon, ou une session invité
Favoris, historique, synchronisation entre appareilsOuiOui ; demandez la connexion quand l'utilisateur enregistre quelque chose
Publier, discuter, suivre d'autres utilisateursOuiOui
Commandes, réservations, factures, espaces de travail d'équipeOuiOui
Une app pour les membres, employés ou clients existants d'un serviceOui, le compte est au cœur de l'appOui ; expliquez-le dans les notes pour l'examen et fournissez un compte de démo
Un abonnement qui fonctionne aussi sur le webOui, multiplateformeOui ; indiquez-le dans les notes pour l'examen

Mon WebView iOS est enfin approuvé. Merci !!

Taha Farooqui · CodeCanyon

Pourquoi les apps créées par IA se heurtent au mur de connexion

Une protection d'authentification autour de tout

Les projets générés par Lovable, Bolt et v0 enveloppent souvent tout le routeur dans une route protégée : le premier écran de l'app est alors un formulaire de connexion.

URL de départ sur /login ou /dashboard

La page marketing est la partie publique de votre site : beaucoup règlent donc webviewurl sur l'espace applicatif, qui redirige directement vers la connexion.

Des formulaires d'inscription trop gourmands

Les champs téléphone, date de naissance, genre et entreprise générés « au cas où » sont des informations personnelles dont la fonction principale n'a pas besoin.

Connexion uniquement via un compte social

Avec seulement « Continuer avec Google », personne n'entre sans compte social. Ajoutez une connexion par e-mail ou Sign in with Apple, et envisagez un accès invité.

Ajoutez un accès invité sans reconstruire votre app

  1. Classez chaque fonctionnalité comme publique ou réservée aux comptes

    Passez en revue chaque écran. En général, la découverte et la lecture sont publiques ; l'enregistrement, la publication, les achats liés au compte et les données personnelles sont réservés aux comptes.

  2. Faites pointer l'app vers une page de départ publique

    Réglez webviewurl dans Config.swift sur une page qui fonctionne sans connexion, comme yourdomain.com/app ou /explore, et non /login. Ce changement demande un nouveau build.

  3. Déplacez la protection d'authentification sur les routes de compte

    Les routes publiques s'affichent pour tout le monde ; seules les routes de compte redirigent vers la connexion (code ci-dessous). Placez « Se connecter » dans l'en-tête ou au premier enregistrement, pas devant le contenu.

  4. Utilisez des sessions anonymes quand les invités ont besoin d'un état

    Si les invités doivent pouvoir enregistrer leur progression, utilisez les connexions anonymes de Supabase, l'authentification anonyme de Firebase ou le stockage local, et convertissez l'invité en compte complet lors de l'inscription pour que rien ne soit perdu. Protégez les inscriptions anonymes par un captcha et la row-level security ; la checklist Supabase liste les réglages.

  5. Allégez le formulaire d'inscription

    E-mail et mot de passe (ou Sign in with Apple), plus un nom si vous en avez vraiment besoin. Demandez le reste plus tard, quand une fonctionnalité en a besoin, et signalez les champs facultatifs comme tels.

  6. Gardez la suppression de compte et le compte de démo

    La création de compte exige toujours la suppression dans l'app (guide de la suppression de compte), et les fonctionnalités de compte ont toujours besoin d'un compte de démo pour l'examen (guide du compte de démo). Laissez deletecache sur false pour que les utilisateurs connectés le restent.

Les routes publiques d'abord, la connexion seulement là où elle compte

Exemple React Router, tel que le génèrent la plupart des outils IA, plus une session invité Supabase pour l'enregistrement.

javascript
// Avant (structure IA typique) : toutes les routes derrière <RequireAuth />
// <Route element={<RequireAuth />}> ...toutes les routes... </Route>

// Après : découverte publique, fonctionnalités de compte derrière la protection
<Routes>
  <Route path="/" element={<Explore />} />                {/* aucun compte nécessaire */}
  <Route path="/recipes/:id" element={<Recipe />} />      {/* aucun compte nécessaire */}
  <Route path="/login" element={<Login />} />
  <Route element={<RequireAuth />}>
    <Route path="/favorites" element={<Favorites />} />    {/* basé sur un compte */}
    <Route path="/settings/account" element={<Account />} />
  </Route>
</Routes>

// Un invité touche « Enregistrer » : démarrer une session anonyme, la convertir plus tard
async function saveAsGuest(recipeId) {
  const { data } = await supabase.auth.getSession();
  if (!data.session) await supabase.auth.signInAnonymously();
  await supabase.from("favorites").insert({ recipe_id: recipeId }); // user_id vaut auth.uid() par défaut
  showBanner("Enregistré. Créez un compte gratuit pour retrouver vos favoris sur tous vos appareils.");
}
// Conversion plus tard : supabase.auth.updateUser({ email }) transforme l'utilisateur anonyme en utilisateur permanent

Prompt : ouvrir l'app aux invités

Laissez l'IA faire la restructuration, mais vérifiez sa liste des routes publiques et des routes réservées aux comptes avant qu'elle ne modifie le code.

Prompt pour Lovable, Bolt, v0, Cursor ou Claude Code
Restructurez l'authentification pour la guideline 5.1.1(v) de l'App Store.
1) Listez chaque route et classez-la comme publique (fonctionne sans compte) ou réservée aux comptes (enregistrement, publication, achats liés au compte, données personnelles). Montrez-moi la liste avant de modifier le code.
2) Supprimez la protection d'authentification globale et appliquez-la uniquement aux routes réservées aux comptes.
3) Faites de / une page de départ publique qui affiche le contenu principal sans connexion.
4) Quand un invité tente une action réservée aux comptes, affichez une feuille bienveillante : « Créez un compte gratuit pour enregistrer ceci », avec Sign in with Apple, l'inscription par e-mail et une option « Plus tard ».
5) Utilisez la connexion anonyme de Supabase pour les invités qui doivent enregistrer un état, et convertissez-les en compte permanent lors de l'inscription sans perte de données. Gardez la row-level security sur toutes les tables.
6) Réduisez le formulaire d'inscription à l'e-mail, au mot de passe et à un nom facultatif. Supprimez le téléphone, la date de naissance et le genre, sauf si une fonctionnalité en a besoin.
7) Gardez le parcours existant de suppression de compte (Delete account) dans les réglages.

Modèle de réponse pour le Resolution Center

Option A si vous avez ouvert l'app ; option B si la connexion est réellement indispensable. Soyez précis dans les deux cas. Le modèle reste en anglais, la langue de travail des examinateurs.

Réponse dans le Resolution Center (choisissez l'option A ou B)
Hello App Review team,

Thank you for reviewing [App name] [version] ([build]).

[Option A: guest access added]
Users can now [browse / read / use the calculator] without an account. The app opens on [Explore], and an account is requested only when a user wants to [save favorites / post / sync across devices], which are account-based features. Sign-up now asks only for email and password, or Sign in with Apple. [New build: [number].]

[Option B: login is essential]
[App name] is a [client portal / team workspace] for [existing customers of X / members of Y]. Every feature works on the user's own account data: [list the main features]. There is no content that could be shown without an account. Accounts are created [at sign-up in the app / by the customer's organization]. A demo account is provided in App Review Information.

Account deletion is available in [Settings > Account > Delete account].

Best regards,
[Name], [email]

Checklist

  • Un nouvel utilisateur accède sans inscription à chaque fonctionnalité qui ne dépend pas d'un compte.
  • webviewurl pointe vers une page publique, pas vers l'écran de connexion.
  • L'invitation à se connecter apparaît à la première action liée au compte, avec la possibilité de refuser.
  • Le formulaire d'inscription ne demande que ce dont le compte a besoin.
  • La connexion via un compte social n'est pas le seul moyen d'entrer.
  • La suppression de compte dans l'app et un compte de démo fonctionnel sont en place.

Questions fréquentes

Mon app est un tableau de bord pour des clients payants. Ai-je besoin d'un mode invité ?

Pas si chaque fonctionnalité porte sur les données du propre compte du client. Expliquez-le dans les notes pour l'examen et fournissez un compte de démo. Une page publique qui montre ce que fait l'app aux personnes qui ne sont pas encore clientes est un plus appréciable.

Le bouton « Continuer en tant qu'invité » doit-il figurer sur le premier écran ?

Il n'y a pas d'emplacement imposé. Ce qui compte, c'est qu'un nouvel utilisateur accède sans inscription aux fonctionnalités qui ne dépendent pas d'un compte. Une page de départ publique avec un bouton « Se connecter » dans l'en-tête est généralement la solution la plus propre.

Puis-je exiger un compte avant un achat intégré ?

Quand l'achat est lié au compte, par exemple un abonnement qui débloque aussi la version web, oui ; indiquez-le dans les notes pour l'examen. Pour les achats qui ne fonctionnent que sur l'appareil, les examinateurs s'attendent à ce que l'inscription soit facultative.

Une connexion uniquement via Google pose-t-elle problème au titre de la 5.1.1(v) ?

C'est possible : si votre fonction principale n'a rien à voir avec Google, les gens doivent pouvoir utiliser l'app sans connexion Google. Un accès invité ou une connexion par e-mail règle la question, et la guideline 4.8 demande en plus Sign in with Apple ou une option similaire à côté de Google.

Les utilisateurs invités ont-ils besoin de la suppression de compte ?

L'obligation de suppression s'applique aux comptes que les utilisateurs créent. Pour les sessions anonymes, une option « Effacer mes données » dans les réglages est une bonne pratique, et dès qu'un invité passe à un compte complet, le parcours normal de suppression de compte s'applique.

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.

Voir les offres sur la page principale

Full Service

$698 par plateforme $798

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.

Détails du Full Service Propulsé par WeSetupYourWebViewApp

Prix Soldes d'hiver valables jusqu'au 31 décembre 2026.

Prêt à publier votre app ?

Garantie d'approbation App Store & Google Play – ou remboursement sous 14 jours

Vous préférez déléguer ? Full Service : nous configurons, compilons et livrons sous 72 heures, dès $698 par plateforme. Des questions ? Chattez avec nous 24/7.

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.