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

Refus App Store

Guideline 3.1.2 (abonnements) : les éléments du paywall que vérifient les examinateurs, et comment les ajouter

Votre achat intégré fonctionne, et pourtant Apple refuse l'app. Les refus 3.1.2 portent sur ce que le paywall dit à l'utilisateur avant qu'il ne touche le bouton : ce qu'il obtient, à quel prix, à quelle fréquence, que l'abonnement se renouvelle, et comment restaurer ou résilier. Tout cela tient en quelques textes et deux liens.

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 la 3.1.2 exige d'un abonnement

Les abonnements à renouvellement automatique doivent apporter une valeur continue, fonctionner sur tous les appareils de l'utilisateur et être présentés honnêtement : le paywall doit indiquer le nom de l'abonnement, sa durée, le prix par période et le fait qu'il se renouvelle automatiquement jusqu'à résiliation. L'app et sa fiche App Store ont besoin de liens fonctionnels vers les conditions d'utilisation et la politique de confidentialité, et les utilisateurs doivent pouvoir restaurer leurs achats. Les essais gratuits et offres de lancement doivent préciser ce qu'ils coûtent ensuite.

Les pages de tarifs web enfreignent plusieurs de ces points à la fois. Une carte « Pro 9 €/mois » avec un bouton « Commencer gratuitement » n'indique pas la période en toutes lettres, ne mentionne ni le renouvellement automatique ni le prix après l'essai, n'a pas de lien de restauration, et affiche une ligne « Résiliez à tout moment dans votre tableau de bord » qui renvoie vers Stripe. C'est un refus 3.1.2, même si l'achat RevenueCat lui-même réussit.

La checklist du paywall que cochent les examinateurs

  • Le nom de l'abonnement et ce qu'il comprend, dans une phrase qu'un nouvel utilisateur comprend.
  • La durée de la période en toutes lettres (mensuel, annuel) et le prix par période dans la devise du store de l'utilisateur.
  • Une phrase indiquant que l'abonnement se renouvelle automatiquement, sauf résiliation au moins 24 heures avant la fin de la période.
  • Essai gratuit : sa durée, le prix facturé à la fin, et une mention précisant qu'une résiliation avant la fin évite le prélèvement.
  • Un lien « Restaurer les achats » (restoreinapppurchases://) et un lien « Gérer l'abonnement » (cancelinapppurchase://).
  • Des liens vers les conditions d'utilisation et la politique de confidentialité sur le paywall et dans la description App Store.

Deux façons de créer un paywall conforme pour le build WebViewGold

  1. Option A : laisser RevenueCat l'afficher en natif

    Concevez le paywall dans le tableau de bord RevenueCat, ajoutez-y vos liens vers les conditions et la confidentialité, puis ouvrez-le depuis l'app web avec revenuecat://launchPaywall?external_id=USER_ID&offering=default. Le modèle affiche des prix localisés et un bouton de restauration : les éléments requis sont réunis au même endroit. Nécessite iOS 15 ou ultérieur.

  2. Option B : votre propre paywall HTML

    Gardez votre design, ajoutez les éléments de la checklist ci-dessus et reliez le bouton d'achat à revenuecat://purchase?external_id=USER_ID&product=pro_monthly. Pour des prix localisés, lisez le pays du store dans storeLocation après avoir appelé getstorelocation:// (ou activez autoInjectVariable dans Config.swift) et affichez le prix correspondant que vous avez défini dans App Store Connect.

  3. Synchronisez le droit d'accès et affichez l'état

    Les webhooks RevenueCat mettent à jour la formule de l'utilisateur dans Supabase ou Firebase. Dans l'app, affichez « Pro jusqu'au [date] » et le lien de gestion ; getpurchasehistory:// remplit window.purchaseHistory si vous voulez une liste native des reçus.

  4. Masquez dans l'app l'interface de facturation web

    Le portail client Stripe, les boutons « Changer de formule sur le site » et les codes promo réservés au web ne doivent pas apparaître dans l'app. Masquez-les grâce au marqueur du user agent ou avec du CSS propre à l'app.

  5. Ajoutez les liens à la fiche

    Collez l'URL des conditions d'utilisation et celle de la politique de confidentialité dans la description App Store et dans le champ prévu pour la politique de confidentialité. Le CLUF standard d'Apple (EULA) peut être utilisé si vous n'avez pas vos propres conditions.

  6. Testez avec un compte sandbox et resoumettez

    Parcourez l'achat, la restauration et la résiliation avec un testeur sandbox, enregistrez une courte vidéo, envoyez le nouveau build et répondez dans le Resolution Center en indiquant où se trouvent les mentions.

WebViewGold nous a permis d'avoir le temps de mise sur le marché le plus court et le plus efficace jamais possible parmi toutes les autres plates-formes d'application que nous avons essayées au cours des 5 dernières années. Je ne sais pas pourquoi je ne vous ai pas découvert plus tôt, mais je suis vraiment, vraiment content de l'avoir fait. Nous approchons actuellement les 6000 téléchargements d'application sur l'App Store iOS et Google Play Store sans aucun problème!

Antonio Davila · CodeCanyon

Les formulations signalées, et celles qui passent

SignaléAccepté
Commencer gratuitementEssai gratuit de 7 jours, puis 4,99 € par mois. Renouvellement automatique ; résiliez au moins 24 heures avant la fin de l'essai pour éviter le prélèvement.
Pro 9 €Pro, 8,99 € par mois, facturé chaque mois jusqu'à résiliation.
Accès à vie (pour un abonnement)Formule annuelle, 49,99 € par an.
Résiliez à tout moment sur notre siteGérez ou résiliez l'abonnement dans les réglages d'abonnement de votre compte Apple.

Prompt : générer le composant de paywall conforme

Prompt pour Lovable, Bolt, v0 ou Cursor
Créez un composant Paywall pour mon app. Quand le user agent contient MyAppiOS (notre app iOS), affichez cette version ; sur le web, gardez la grille tarifaire Stripe existante. Contenu : nom de la formule [nom] ; ce qui est inclus [liste] ; prix par période sous forme de variable [prix], avec la période écrite en toutes lettres (par mois / par an) ; essai gratuit de [jours] jours, puis [prix] par période ; la phrase : Votre abonnement se renouvelle automatiquement jusqu'à résiliation. Gérez-le ou résiliez-le dans les réglages d'abonnement de votre compte Apple au moins 24 heures avant la fin de la période en cours ; un bouton S'abonner qui navigue vers revenuecat://purchase?external_id=[userId]&product=[productId] ; un lien texte Restaurer les achats vers restoreinapppurchases:// ; un lien Gérer l'abonnement vers cancelinapppurchase:// ; de petits liens de pied de page vers /terms et /privacy. Mise en page simple, contraste élevé, boutons d'au moins 44 px de haut, aucune affirmation absente de cette liste.

Questions fréquentes

Le prix doit-il figurer dans l'app, ou App Store Connect suffit-il ?

Dans l'app, sur le paywall, avant la feuille d'achat. La feuille StoreKit le répète, mais les examinateurs veulent l'information sur votre propre écran.

Puis-je mentionner le prix web dans l'app ?

Non. Comparer les prix ou renvoyer vers une formule web moins chère depuis l'app pose un problème 3.1.1 en plus de la 3.1.2. Gardez les tarifs web sur le web.

Pour mes utilisateurs existants, l'abonnement est géré par Stripe. Doivent-ils racheter dans l'app ?

Non. Débloquez le droit d'accès depuis votre backend pour les utilisateurs qui paient déjà sur le web ; c'est autorisé tant que l'app elle-même propose l'achat intégré et ne renvoie pas vers un paiement externe.

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.