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

Refus App Store

Guideline 2.1 (complétude de l'app) : pourquoi App Review a vu une app cassée, et comment la corriger

Un refus 2.1 signifie que l'examinateur est tombé sur quelque chose qui ne fonctionnait pas : un écran blanc, un plantage, un lien qui ne mène nulle part, du lorem ipsum ou une connexion qui a échoué. Pour une app web encapsulée, la cause se trouve presque toujours côté serveur ou dans la séquence de lancement, et tout se corrige en un après-midi.

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 qu'exige la guideline 2.1

La section 2.1 attend un build soumis finalisé et testé : pas de plantage, pas de texte de remplissage, pas de liens cassés, et un contenu que l'examinateur peut réellement charger. Apple invoque aussi la 2.1 quand l'examinateur n'a pas pu dépasser le premier écran, c'est pourquoi les messages « We were unable to review your app » portent généralement ce numéro.

Une app web encapsulée a ici une particularité : elle n'est complète que si l'URL qu'elle charge l'est au moment de l'examen. Si votre déploiement était en cours, si votre base de données gratuite s'était mise en pause ou si un certificat avait expiré, l'examinateur a vu une WebView vide et a rédigé un refus 2.1. Le binaire était correct ; c'est l'app web qui était injoignable.

Les cinq messages 2.1 les plus fréquents, et leur cause

Écran vide ou blanc au lancement

La page ne s'est pas chargée avant la disparition du splash screen, l'URL a redirigé vers une connexion qui a échoué, ou WebKit a bloqué du contenu mixte (une page HTTPS qui charge des scripts HTTP). Solution : URL de production, HTTPS partout, splash screen affiché jusqu'à ce que la page soit prête.

L'app plante au lancement

Rare avec les builds WebViewGold, et généralement dû à une modification du projet : une clé Info.plist supprimée, comme la description d'usage du suivi (Tracking Usage Description), un SDK push activé sans son identifiant, ou un Product Name contenant des accents. Solution : comparez votre Config.swift et votre Info.plist au projet d'origine.

Liens morts et pages 404

Des liens de pied de page vers /blog ou /docs qui n'existent pas encore, des pages « Bientôt disponible », des entrées de menu que l'outil d'IA a esquissées sans jamais les terminer. Solution : supprimez ou terminez chaque lien accessible ; les examinateurs les touchent tous.

Contenu de remplissage

Du lorem ipsum dans un état vide, « Nom de votre entreprise ici » dans le pied de page, des utilisateurs d'exemple nommés Test Test, un badge Lovable ou Bolt dans un coin. Solution : de vrais textes, de vraies données dans le compte de démo, badge retiré.

L'examinateur n'a pas pu se connecter

L'e-mail de confirmation n'est jamais arrivé, le mot de passe de démo contenait une faute de frappe, les codes à deux facteurs partaient sur votre téléphone. Solution : un compte de démo dédié, confirmé, durable et documenté dans les notes pour l'examen.

Rendez la séquence de lancement infaillible dans WebViewGold

Chaque étape correspond à une valeur de Config.swift ou à une seule vérification.

  1. Faites pointer l'app vers une URL de production

    Pas un aperçu Lovable, un onglet StackBlitz de Bolt, une adresse Replit en .dev ou un aperçu Vercel protégé par mot de passe. Utilisez votre propre domaine avec un certificat valide (voir domaine personnalisé avant la soumission) et gardez ce déploiement stable pendant toute la période d'examen.

  2. Affichez le splash screen jusqu'au chargement réel de la page

    Réglez splashScreenEnabled sur true et remainSplashOption sur true pour que le splash screen reste affiché jusqu'à la fin du chargement de la première page ; splashTimeout bascule sur l'indicateur de chargement natif si votre backend est lent. Laissez useLoadingSign (ou useLoadingProgressBar) activé et accordez loadingIndicatorColor aux couleurs de votre marque. Détails : documentation du splash screen.

  3. Servez tout en HTTPS

    WebKit bloque le contenu mixte sans prévenir : un CDN d'images en HTTP ou un appel d'API en HTTP produit un composant vide, sans aucune erreur visible. Corrigez les URL dans votre app web, puis envisagez blockfaultyandselfsignedhttpscerts et le réglage de transport HTTPS uniquement décrit dans la documentation d'installation iOS.

  4. Donnez un visage aux états hors ligne et d'erreur

    Activez offlinelocalhtmlswitch avec une petite page HTML locale de secours, réglez offlinescreenautoretry sur true et rédigez des libellés screen1, screen2 et offlinebuttontext bienveillants. Les examinateurs activent volontairement le mode avion ; un écran hors ligne natif l'emporte à chaque fois sur une page d'erreur Safari. Voir le mode hors ligne pour les apps vibe-codées.

  5. Préparez le compte de démo et les notes pour l'examen

    Créez un compte confirmé avec des données réalistes, désactivez les codes à usage unique pour ce compte et collez les identifiants dans App Store Connect. Laissez deletecache sur false pour les apps avec connexion, sinon l'examinateur est déconnecté à chaque lancement. Le guide du compte de démo contient la checklist complète.

  6. Testez comme l'examinateur

    Installation neuve via TestFlight sur un vrai iPhone et un iPad, mode avion activé puis désactivé, chaque entrée de menu, chaque formulaire, déconnexion puis reconnexion. Dix minutes de ce test repèrent la plupart des problèmes 2.1 avant Apple.

Excellent travail! Je n'ai jamais codé quoi que ce soit, mais j'ai réussi à travailler avec cela. Facile et rapide! Avec une grande aide des créateurs!

Lucas Dubois · CodeCanyon

Ce qui semble fonctionner sur votre Mac et échoue à l'examen

  • Les backends gratuits qui se mettent en pause après une période d'inactivité (les projets Supabase gratuits le font) : la première requête expire et l'examinateur voit un écran vide.
  • Les API restreintes géographiquement ou par liste d'autorisation : App Review se connecte généralement depuis les États-Unis ; un backend limité à l'UE ou filtré par IP ne renvoie rien.
  • Bandeaux cookies, barres « Ouvrir dans l'app » et badge « Edit with Lovable » qui recouvrent le premier écran (voir retirer le badge Lovable).

Questions fréquentes

Un refus 2.1 signifie-t-il qu'Apple trouve mon idée d'app mauvaise ?

Non. La 2.1 porte sur la complétude et la stabilité, pas sur le concept. Dès que l'examinateur peut charger et utiliser l'app, la même soumission est évaluée au regard des autres guidelines.

Mon app Lovable se charge dans Safari mais pas dans l'app WebViewGold. Pourquoi ?

Les raisons les plus courantes sont le contenu mixte (ressources HTTP sur une page HTTPS), une redirection vers une URL d'aperçu, ou des cookies effacés au démarrage. Vérifiez la console du navigateur sur ordinateur avec la même URL, puis contrôlez deletecache et les réglages de secours hors ligne.

Ai-je besoin d'un nouveau build après un refus 2.1 ?

Si le problème venait du serveur (déploiement, base de données en pause, liens morts), corrigez l'app web, vérifiez-la dans le build TestFlight installé et répondez dans le Resolution Center ; le binaire peut rester le même. Si vous avez modifié Config.swift ou Info.plist, envoyez un nouveau build avec un numéro de build plus élevé.

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.