Obtenir l'approbation de votre application sur l'App Store et Google Play peut être difficile, surtout lors de la mise en œuvre des achats In-App (IAP) et des abonnements. Avec des directives plus strictes en 2025, il est crucial de comprendre ce que recherchent les réviseurs. Ce guide complet couvre tout ce dont vous avez besoin pour passer la revue à votre première soumission.
Besoin d'instructions de configuration détaillées ? Consultez nos guides complets : Examen de la revue iOS | Examen de la revue Android Play Store
Pourquoi les applications avec IAP sont rejetées
Les applications avec des achats en application sont soumises à une plus grande vigilance car elles impliquent des transactions financières réelles. Selon les lignes directrices d'examen de la revue App Store d'Apple et les politiques de monétisation de Google Playles principales raisons de rejet en 2025 sont :
- Tarification non claire (42% des rejets)
- Conditions de souscription manquantes ou confuses (31%)
- Modèles de l'interface utilisateur trompeurs (18%)
- Violations de la politique de confidentialité (9%)
Découvrons comment éviter chaque piège.
Exigences de l'App Store iOS
📖 Guide iOS complet : Pour obtenir des instructions de configuration complètes, consultez notre Guide de revue de l'App Store iOS
1. Transparence de tarification claire comme cristal
Apple exige une disclosure de tarification exacte avant le bouton d'achat. C'est non négociable.
Ce que Apple souhaite voir :
- Le prix est clairement affiché : « 9,99 $ par mois »
- La fréquence de facturation indiquée à l'avance
- Ce que les utilisateurs obtiennent pour leur argent
- Lors des redevances
- Instructions de résiliation visibles

Erreur commune : Cacher le prix jusqu'à ce que les utilisateurs cliquent sur « Abonnez-vous » ou afficher le prix uniquement en petits caractères.
Solution :
// Example: Compliant subscription display
<div className="subscription-card">
<h2>Premium Plan</h2>
<p className="price">$9.99/month</p>
<ul>
<li>✓ Ad-free experience</li>
<li>✓ Unlimited cloud storage</li>
<li>✓ Priority support</li>
</ul>
<p className="terms">
Renews automatically. Cancel anytime in Settings.
</p>
<button>Subscribe Now</button>
</div>
Règle de cohérence des prix : Tous les prix doivent correspondre sur :
- Liste de l'App Store
- Écrans de vente en ligne
- Gestion des abonnements
- Matériaux de marketing
Même une différence de 1$ déclenche automatiquement le rejet.
2. Présentation du plan d'abonnement
Apple signale les applications qui utilisent des « schémas sombres » pour pousser des niveaux coûteux.
Requis :
- Afficher tous les niveaux d'abonnement de manière égale
- Aucune option premium pré-sélectionnée
- Comparaison claire des fonctionnalités
- Alternatives moins chères facilement accessibles
Interdit :
- Passer automatiquement aux abonnements annuels
- Cacher les options mensuelles derrière des clics supplémentaires
- Utiliser des compteurs à rebonds pour créer une fausse urgence
- Pseudo-scarcité (« Seulement 3 places restantes ! »)
3. Récupérer la fonctionnalité d'achat
Tout application avec IAP doit fournir un bouton de récupération des achats qui fonctionne sans nécessiter un contact avec le support. En savoir plus dans notre guide Guide de démarrage.
Mise en œuvre :
import { NativePurchases } from '@capgo/native-purchases';
async function restorePurchases() {
try {
const { customerInfo } = await NativePurchases.restorePurchases();
if (customerInfo.activeSubscriptions.length > 0) {
showSuccess('Purchases restored!');
unlockPremiumFeatures();
} else {
showInfo('No previous purchases found.');
}
} catch (error) {
showError('Restore failed. Please try again.');
}
}
4. Conformité à la vie privée (Section 5.1.1)
2025 apporte des mesures de conformité à la vie privée plus strictes. Apple exige désormais :
Pour chaque autorisation :
- Explication claire avant de demander
- Cas d'utilisation spécifique (pas général)
- Comment les données sont stockées/échangées
- Est-ce qu'il est facultatif
Exemple Info.plist entrées :
<key>NSCameraUsageDescription</key>
<string>Camera access lets you scan product barcodes for quick upgrades. Photos are never uploaded.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location shows relevant local content in your Premium subscription.</string>
Les étiquettes de confidentialité inexactes sont la principale raison de refus en 2025.
Exigences Android Google Play
📖 Guide Android complet : Pour obtenir des instructions de configuration complètes, consultez notre Guide de notation de l'Android Play Store
1. Google Play Billing obligatoire
Pour les biens numériques (abonnements, contenu en application), vous devez utiliser Google Play Billing. Les autres méthodes de paiement seront rejetées. Biens numériques (utilisation obligatoire de Play Billing): Abonnements à des fonctionnalités
Monnaie en application
- Contenu numérique (livres numériques, musique)
- Déverrouillages premium
- Biens physiques (ne peuvent pas utiliser Play Billing):
- Marchandises physiques réelles
__CAPGO_KEEP_0__
- __CAPGO_KEEP_0__
- Services physiques
- Donations à but non lucratif
Implémentation avec native-purchases:
Pour une configuration complète d'Android, voir Test de l'environnement de bureau Android et Création de souscriptions.
import { NativePurchases } from '@capgo/native-purchases';
// Automatically uses Google Play Billing on Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
2. Renouvellement automatique transparent
Google exige une disclosure claire selon laquelle les souscriptions se renouvellent automatiquement, notamment :
- Notification de renouvellement avant facturation
- Rappel du prix
- Accès facile à l'annulation
Interface conforme :
<div className="subscription-terms">
<p>Subscription renews automatically at $9.99/month</p>
<p>Cancel anytime in Google Play Subscriptions</p>
<p>Next billing date: February 15, 2025</p>
<button onClick={openManagement}>
Manage in Google Play
</button>
</div>
3. Exigences de la politique de confidentialité
Obligatoire pour les applications IAP :
- URL de la politique de confidentialité dans le console de Play
- Lien de la politique de confidentialité accessible en application
- Déclarations précises de la section Sécurité des données
Sécurité des données doit déclarer :
- Collecte de l'historique des achats
- Adresses e-mail (pour les factures)
- Identifiants de dispositif (prévention de la fraude)
- Données d'analytique

Raisons de Refus Communes pour les Deux Plates-formes
1. Mismatches de Métadonnées
Pourquoi Cela Faille:
- Les captures d'écran montrent des fonctionnalités non présentes dans la version actuelle
- La description promet des fonctionnalités qui n'existent pas
- Le prix diffère de ce qui est présent dans l'application

Prévention:
- Mettez à jour les captures d'écran pour chaque soumission
- Correspondre la description aux fonctionnalités réelles
- Testez toutes les affirmations pour s'assurer qu'elles sont exactes
- Supprimez le texte promotionnel obsolète
2. Publicités trompeuses
Automatic Rejection Triggers:
- “Application n°1” sans preuve
- “Infini” avec des limites cachées
- Évaluations ou notes fausses
- Dénigrement de la concurrence

Best Practice: Soit spécifique et factuel:
- ✓ “Rejoignez 50 000+ utilisateurs”
- ✗ “Meilleure application au monde”
- ✓ “Économisez jusqu’à 30% avec le plan annuel”
- ✗ “Offre limitée dans le temps !”
3. Flux d'achat défectueux
Testez ces éléments avant la soumission :
- Les produits chargent correctement
- L'achat se termine avec succès
- Les fonctionnalités premium s'activent immédiatement
- La restauration des achats fonctionne
- Les messages d'erreur sont amicaux
- Les pannes de réseau sont gérées avec élégance
// Comprehensive error handling
async function handlePurchase(productId: string) {
try {
const { customerInfo } = await NativePurchases.purchaseProduct({
productIdentifier: productId
});
if (customerInfo.entitlements.active['premium']) {
unlockPremiumFeatures();
}
} catch (error: any) {
switch (error.code) {
case 'USER_CANCELLED':
// Silent - user backed out
break;
case 'ITEM_ALREADY_OWNED':
await NativePurchases.restorePurchases();
break;
case 'NETWORK_ERROR':
showError('Check your connection and try again.');
break;
default:
showError('Purchase failed. Please try again.');
}
}
}
Liste de vérification avant la soumission

Utilisez cette liste de vérification avant chaque soumission. Pour des procédures de test détaillées :
- iOS Testing: __CAPGO_KEEP_0__ Guide de test iOS Sandbox
- iOS Testing: __CAPGO_KEEP_0__ Guide de test Sandbox iOS
Test
- Testez tous les niveaux d'abonnement
- Vérifiez que les essais gratuits fonctionnent correctement
- Testez les offres d'introduction
- Confirmez que les achats de restauration fonctionnent
- Testez sur plusieurs appareils
- Vérifiez que les comptes sandbox/test fonctionnent
Tarifs et Conditions
- Les prix correspondent sur tous les plateformes
- Les conditions de souscription sont clairement indiquées
- Les instructions de résiliation sont visibles
- La fréquence de facturation est affichée
- La durée de la période d'essai gratuite est précise
Confidentialité & Autorisations
- La politique de confidentialité est liée dans la boutique
- La politique de confidentialité est accessible en application
- Toutes les autorisations sont justifiées
- Les descriptions de Info.plist sont claires (iOS)
- La sécurité des données est terminée (Android)
Les métadonnées
- Les captures d'écran montrent la version actuelle
- La description correspond aux fonctionnalités
- Pas de texte de remplissage
- La notation d'âge est correcte
- Toutes les affirmations sont testables
Code Qualité
- Aucun crash lors du lancement
- Toutes les fonctionnalités fonctionnent comme décrites
- La gestion des erreurs est mise en œuvre
- Les états de chargement sont affichés
- Les erreurs de réseau sont gérées
Échéancier de la revue : attentes

iOS :
- Standard : 24-48 heures
- Périodes de pointe : 3-5 jours
- Week-ends : Aucune revue
- Expedié : Disponible pour les bugs critiques
Android :
- Initial : 7 jours en moyenne
- Mises à jour : Généralement plus rapides
- Revue continue : Peut être mise en ligne à tout moment
- Violations de la politique : Suspension immédiate possible
Conseil Pro : Soumettez les applications iOS du lundi au mercredi pour éviter les retards du week-end.
Ce à quoi faire si vous êtes rejetés

Étape 1 : Comprendre le problème
- Lisez attentivement le message de rejet
- Notez la règle spécifique citée
- Vérifiez les exemples fournis
- Recherchez des modèles dans les commentaires
Étape 2 : Corrigez soigneusement
- Adressez la cause profonde, pas les symptômes
- Testez soigneusement la correction
- Documentez toutes les modifications
- Capture d'écran avant/après
Étape 3 : Répondre de manière professionnelle

Centre de résolution iOS :
Thank you for the feedback. I have addressed the issue:
Issue: Subscription pricing not clear upfront
Fix: Added explicit pricing display on subscription screen
showing "$9.99/month" before purchase button. Also added
cancellation instructions on the same screen.
Screenshots showing changes are attached. Test account
provided in App Review Notes.
Appel Android :
Subject: Policy Violation Appeal - [App Name]
I have received notification regarding [Policy X.Y].
Changes made:
1. Updated subscription UI to show all pricing upfront
2. Added clear cancellation instructions
3. Implemented restore purchases functionality
Version [X.Y.Z] addresses all concerns. Test account
credentials provided below for verification.
Étape 4 : Réinsérer rapidement
- Les réinscriptions sont examinées plus rapidement
- Généralement dans les 24 heures
- Inclure un compte de test
- Référencez la soumission précédente
Mises à jour 2025 et nouveaux exigences
Changements iOS
Déclaration de fonctionnalité de l'intelligence artificielle __CAPGO_KEEP_0__
- Il faut étiqueter le contenu généré par l'intelligence artificielle
- Expliquer l'utilisation de l'intelligence artificielle
- Documenter la sécurité du contenu
Clarté de l'abonnement renforcée
- Comparaisons de plans de côté à côté requises
- Pas de dissimulation d'options moins chères
- Itinéraires d'amélioration/diminution clairs
Intensification de la vie privée
- Exécution de l'article 5.1.1 renforcée
- Plus de contrôle sur la justification des données
- Règles plus strictes pour les applications pour enfants
Changements Android
Facturation alternative (Régional)
- Autorisé dans l'UE, en Corée du Sud
- Doit toujours offrir l'option Google Play
- Frais de service réduits
Exigences de souscription API
- Les nouvelles applications doivent utiliser les API de monétisation des souscriptions
- Les API de facturation de legacy sont obsolètes
- Outils de gestion de souscription améliorés
Meilleures pratiques pour réussir
1. Utilisez les SDKs appropriés
La @capgo/achats-natifs le plugin gère les deux plateformes correctement :
// Single API for iOS and Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
// Automatically uses correct billing system
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
// Platform-specific logic handled automatically
await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly'
});
2. Mettez en œuvre une gestion des erreurs appropriée
Gérez tous les états d'achat avec élégance :
- Annulation de l'utilisateur (silencieuse)
- Erreurs de réseau (option de réessai)
- Déjà acquis (restaurer)
- Produit indisponible (informer l'utilisateur)
- Paiement en attente (vérifiez plus tard)
3. Communiquez clairement
Les utilisateurs doivent toujours savoir :
- Ce qu'ils achètent
- Combien ça coûte
- Quand ils seront facturés
- Comment annuler
- Ce qui se passe après la période d'essai
4. Testez Extensivement
Sandbox iOS :
- Créez des comptes de test dans App Store Connect
- Configurez sur appareil (Réglages > App Store > Sandbox)
- Notez les durées d'abonnement accélérées
Test de licence Android :
- Ajoutez des comptes de test dans le console de Play
- Voir la notification « Achat de test »
- Aucune charge réelle n'a lieu
Ressources
Documentation de la plateforme
- Lignes directrices de la revue des applications iOS
- Politiques du développeur Google Play
- Lignes directrices de l'achat en application iOS
- Documentation de facturation Google Play
Guides d'implémentation
- Guide de configuration iOS pour les achats natifs
- Guide de configuration Android pour les achats natifs
- Groupes d'abonnements iOS
- Abonnements Android
Guides de revue détaillés
Besoin d'aide experte ?
Vous vous trouvez coincé avec la revue de l'application ou avez besoin d'une assistance pratique ? Notre équipe fournit un soutien dédié pour l'implémentation des achats en application et la préparation de la revue.
Réservez un appel de consultation avec nous pour obtenir une aide personnalisée avec :
- Révision de l'implémentation IAP
- Préparation de la revue de l'App Store
- Conseils de stratégie de soumission
- Aide à la résolution de rejets
- Support complet pour la configuration et les tests
Nous avons aidé des centaines d'applications à passer avec succès la revue !
Conclusion
Pour passer la revue d'une application avec des achats en ligne en 2025, il faut une attention aux détails, une communication claire et une mise en œuvre correcte. Les principaux points à retenir :
- La transparence est obligatoire - Montrez les prix à l'avance, toujours
- Suivez les règles des plateformes - Utilisez les systèmes de facturation requis
- Testez soigneusement - Attrapez les problèmes avant que les réviseurs ne le fassent
- Communiquez clairement - Les utilisateurs ne devraient jamais être confus
- Préparez la documentation - Ayez des comptes de test prêts
En suivant ce guide et en utilisant les outils appropriés comme le plugin native-purchases, vous augmenterez significativement vos chances d'obtenir une approbation au premier essai.
Rappelez-vous : Les examinateurs recherchent des applications qui respectent les utilisateurs et suivent les lignes directrices. Construisez avec cette mentalité, et l'approbation suivra.
Avez-vous besoin d'aide pour mettre en œuvre les achats en application ? Consultez notre documentation exhaustive ou contactez la communauté pour obtenir de l'aide.