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

Refus App Store

Guideline 4.2.2 : quand App Review qualifie votre app de collection de liens, de brochure ou d'agrégateur

La 4.2.2 est la petite sœur, plus ciblée et plus tranchante, de la règle 4.2 sur la fonctionnalité minimale. L'examinateur n'a pas seulement trouvé votre app trop mince ; il a constaté qu'elle est surtout un menu de liens, une brochure marketing ou le contenu d'autres personnes dans un cadre. La solution n'est pas d'ajouter des liens, mais une tâche que l'utilisateur peut mener à bout dans l'app.

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 4.2.2, et en quoi elle diffère de la 4.2

La guideline 4.2.2 indique que, catalogues mis à part, les apps ne doivent pas être principalement des supports marketing, des publicités, des extraits de sites web, des agrégateurs de contenus ou une collection de liens. Le refus cite généralement « 4.2.2 - Design - Minimum Functionality » et décrit ce que l'examinateur a vu : l'app affiche surtout du contenu marketing, renvoie surtout vers l'extérieur ou reconditionne surtout des contenus venus d'ailleurs, et n'apporte guère de valeur durable à l'utilisateur.

La guideline 4.2 générale demande si votre app est plus qu'un site web reconditionné, et la réponse au refus « thin wrapper » couvre les apps qui sont très bien en tant que sites web mais donnent l'impression d'être Safari. La 4.2.2 porte sur la finalité. Une app magnifiquement native peut quand même la recevoir si son contenu principal est une liste de liens ou une publicité pour une entreprise. Ajouter des notifications push à une brochure ne change pas sa nature.

Six types d'apps qui reçoivent l'étiquette 4.2.2

Apps « link in bio »

Un hub personnel avec des boutons vers Instagram, YouTube, une boutique et une newsletter. Chaque toucher fait quitter l'app.

Brochures d'agences ou d'entreprises

À propos, services, équipe, témoignages, formulaire de contact. Utile une fois pour un prospect, pas quelque chose qu'on ouvre deux fois.

Restaurants et hôtels avec menu en PDF

Un menu en PDF, des horaires d'ouverture et un bouton de réservation qui ouvre un site tiers.

Agrégateurs de contenus tiers

Flux RSS, articles intégrés de sites d'actualité, listes de « bons plans » faites de liens d'affiliation. La valeur appartient aux sources, pas à l'app.

Annuaires de sites web

Le projet Lovable classique du week-end : « 200 outils d'IA » sous forme de cartes qui ouvrent chacune le site de l'outil.

Apps d'information sur un événement

Un programme et un plan du lieu qui renvoient vers la billetterie et le streaming. Très bien comme page, trop mince comme app.

Du lien à la fonctionnalité

Ce que l'app propose aujourd'huiCe que les examinateurs veulent voirBrique WebViewGold
Des boutons qui ouvrent des sites externes dans SafariLe contenu important dans l'app ; la sortie est l'exceptionopenallexternalurlsinsafaribydefault sur false, domaines partenaires dans safariblacklist, pages secondaires dans un onglet intégré avec openspecialurlsinnewtab (documentation sur la gestion des URL)
Des pages de services et un formulaire de contactUne tâche avec un résultat : réserver, commander, demander un devis et suivre son statutNotifications push pour les changements de statut (kPushEnabled, oneSignalID), autorisation demandée avec registerpush:// après la première réservation
Un flux d'articles d'autres sitesVos propres contenus ou une sélection qui apporte une valeur personnelle : éléments enregistrés, liste de lecture, progressionFavoris stockés sur l'appareil avec writevalue:// et readvalue:// (extrait ci-dessous), une page de secours hors ligne
Un menu en PDFUn vrai menu avec catégories, allergènes, favoris, commande ou réservation, et une carte de fidélitéCarte Wallet avec addpkpass:// ; le PDF peut rester en téléchargement complémentaire
Un programme d'événement statiqueUn agenda personnel, des rappels avant les sessions, un contrôle des billets à l'entréeqrcode:// ou barcodescanner:// pour le contrôle à l'entrée, liens .ics pour le calendrier, rappels push
Un écran d'accueil rempli de liensDes raccourcis vers les tâches que les gens répètentActions rapides sur l'écran d'accueil avec useShortcuts et Shortcuts.json, une barre d'onglets native avec showNavFooter

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.

Nelis Geiger · CodeCanyon

Les catalogues : l'exception nommée et ses limites

Apple exempte nommément les catalogues, et beaucoup d'apps de commerce s'appuient sur cette exception. Un catalogue passe quand il se comporte comme tel : navigation par catégorie, recherche, filtres, fiches produit avec disponibilité, favoris, et pourquoi pas un localisateur de magasins ou un scanner de codes-barres pour les recherches en magasin (le résultat de barcodescanner:// arrive dans la variable JavaScript barcodescanresult). Un catalogue qui n'est en réalité qu'une brochure PDF ou une grille de liens vers une boutique en ligne est traité comme un support marketing. Les biens physiques se vendent avec votre paiement web habituel, pas avec l'achat intégré ; voir la guideline 3.1.1 pour savoir où passe la limite.

Renverser un refus 4.2.2

  1. Formulez la tâche unique

    Complétez cette phrase avant de toucher au code : « Dans [app], [qui] peut [tâche] en moins d'une minute. » Si vous n'y arrivez pas, l'app a d'abord besoin d'une décision produit, pas d'un build.

  2. Consacrez le premier écran à cette tâche

    Ouvrez sur la tâche, pas sur une grande bannière d'accroche. Masquez les blocs marketing dans l'app avec du CSS réservé à l'app (documentation du CSS personnalisé) ou affichez une autre page de démarrage en détectant l'app grâce à useragent_iphone / useragent_ipad dans Config.swift.

  3. Gardez les utilisateurs dans l'app

    Réglez la gestion des URL pour que vos propres contenus et les pages partenaires s'ouvrent dans l'app ou dans un onglet intégré. Seuls les profils sociaux et les services réellement externes doivent partir vers Safari.

  4. Donnez de la mémoire à l'app

    Favoris, historique, progression, panier, filtre enregistré. Avec un compte, stockez-les sur votre backend ; sans compte, l'API Read/Write Value les garde sur l'appareil (documentation Read/Write Value).

  5. Ajoutez une raison de revenir

    Un vrai déclencheur de notification : votre commande est prête, la session commence dans 15 minutes, un article enregistré est de nouveau en stock. Une demande d'autorisation push sans rien derrière ne compte pas.

  6. Testez avec quelqu'un qui ne l'a jamais vue

    Confiez le build TestFlight à un ami et donnez-lui la tâche, pas des instructions. Là où il se perd, l'examinateur se perdra aussi.

  7. Envoyez un nouveau build et répondez

    Décrivez la tâche et l'emplacement de chaque fonctionnalité à l'aide du modèle ci-dessous, et mettez à jour les notes pour l'examen.

Des favoris qui restent sur l'appareil

Un petit utilitaire pour les apps sans compte. Tout ce qui suit writevalue:// est stocké sous forme d'une seule chaîne ; readvalue:// la réinjecte sous la forme window.storedValues. Dans un navigateur classique, le code se rabat sur localStorage.

javascript
// Favoris via l'API Read/Write Value de WebViewGold, localStorage sur le web
// "MyAppIOS" est un marqueur que vous ajoutez à useragent_iphone et useragent_ipad dans Config.swift
const inApp = navigator.userAgent.includes("MyAppIOS");

function saveFavorites(ids) {
  const value = JSON.stringify({ fav: ids });
  if (inApp) {
    window.location.href = "writevalue://" + encodeURIComponent(value);
  } else {
    localStorage.setItem("favorites", value);
  }
}

function loadFavorites(callback) {
  const parse = (raw) => {
    try { return JSON.parse(decodeURIComponent(raw)).fav || []; } catch (e) { return []; }
  };
  if (!inApp) { callback(parse(localStorage.getItem("favorites") || "")); return; }
  window.location.href = "readvalue://";
  setTimeout(() => callback(parse(window.storedValues || "")), 200);
}

Modèle de réponse pour le Resolution Center

Le modèle reste en anglais, la langue de travail des examinateurs.

Réponse dans le Resolution Center (adaptez les parties entre crochets)
Hello App Review team,

Thank you for the feedback under Guideline 4.2.2. We agree that the previous build relied too much on links and marketing content, and we have reworked the app in build [number].

[App name] now helps [who] to [core job]. What changed:

1. The home screen opens on [task], not on marketing content. Promotional sections were removed from the app.
2. [Content / booking / ordering] now happens inside the app; only [social profiles] still open externally.
3. Users can [save favorites / keep a reading list / track their orders]; this is stored [in their account / on the device].
4. Push notifications inform users when [order is ready / session starts / saved item is back].

How to test: log in with [demo account] or use the app without an account, then [3 short steps that show the job].

Best regards,
[Name]

Les changements qui ne comptent pas

  • Plus de liens, une plus jolie grille de liens, ou un champ de recherche sur les mêmes liens.
  • Intégrer d'autres sites dans des cadres. C'est toujours leur contenu, et cela peut en plus soulever des questions de propriété intellectuelle.
  • Une demande d'autorisation push au lancement sans aucun type de notification derrière.
  • Encapsuler un site web que vous ne possédez pas ou n'exploitez pas. Vous passez alors de la 4.2.2 aux problèmes de copie et d'usurpation d'identité.

Questions fréquentes

Une app « link in bio » est-elle parfois approuvée ?

Rarement à elle seule. Si vous créez du contenu, construisez plutôt quelque chose que votre audience utilise régulièrement, comme des contenus exclusifs, un fil communautaire avec vos propres publications, des réservations ou une boutique avec suivi de commande, et gardez les liens sur un écran secondaire.

Mon app est un catalogue de produits. Suis-je à l'abri ?

Les catalogues sont exemptés nommément, tant que l'app fonctionne comme un catalogue : catégories, recherche, fiches produit, favoris. Un catalogue qui n'est qu'un PDF ou une liste de liens vers une boutique en ligne est traité comme un support marketing.

Une app d'actualités peut-elle agréger des flux RSS ?

L'agrégation pure de contenus d'autres éditeurs est exactement ce que vise la 4.2.2. Des reportages originaux, une vraie curation avec vos propres résumés, ou de la personnalisation et de la lecture hors ligne donnent à l'app sa propre valeur.

Faut-il des comptes utilisateurs pour passer la 4.2.2 ?

Non. Les comptes sont un moyen parmi d'autres de donner de la mémoire à l'app. Des favoris stockés sur l'appareil, du contenu hors ligne, des scanners ou une calculatrice peuvent convaincre tout autant, pourvu que l'utilisateur puisse accomplir une tâche.

En quoi est-ce différent d'un refus 4.3 pour spam ?

La 4.2.2 juge la finalité de votre app. La 4.3 juge si elle fait doublon avec d'autres apps, y compris les vôtres. Vous pouvez recevoir les deux, et chacun demande sa propre correction ; voir le guide de la 4.3 pour le volet doublons.

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.