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 en application (IAP) et des abonnements. Avec des directives plus strictes en 2025, il est essentiel de comprendre ce que recherchent les réviseurs. Ce guide complet couvre tout ce dont vous avez besoin pour passer la revue avec votre première soumission.
Besoin d'instructions de configuration détaillées ? Consultez nos guides complets : Révision de l'App Store iOS | Révision de la boutique Play Android
Pourquoi les applications avec IAP sont rejetées
Les applications avec des achats en application sont soumises à une plus grande surveillance car elles impliquent des transactions réelles d'argent. Selon les lignes directrices d'examen de l'App Store d'Apple et les politiques de monétisation de Google Play les principales raisons de refus en 2025 sont : Tarifs non clairs(42 % des refus)
- Mise à jour ou termes de souscription confus Modèles de l'IU trompeurs
- Violations de la politique de confidentialité (31%)
- Découvrons comment éviter chaque piège. (18%)
- Exigences de l'App Store iOS (9%)
__CAPGO_KEEP_0__
__CAPGO_KEEP_1__
📖 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 et nette
Apple exige une divulgation de tarification exacte avant le bouton d'achat. C'est non négociable.
Ce que Apple souhaite voir :
- Prix clairement affiché : « 9,99 $/mois »
- Fréquence de facturation indiquée à l'avance
- Ce que les utilisateurs obtiennent pour leur argent
- Quand les frais ont lieu
- Instructions de résiliation visibles

Erreur commune : Cacher le prix jusqu'à ce que les utilisateurs cliquent sur « S'abonner » 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ériel de marketing
Même une différence de 1 $ déclenche une réjection automatique.
2. Présentation du Plan d'Abonnement
Les applications Apple signalent les « schémas sombres » utilisés pour pousser des tarifs coûteux.
Requis :
- Afficher toutes les options de tarifs de manière égale
- Pas d'options premium pré-sélectionnées
- Comparaison claire des fonctionnalités
- Alternatives moins chères faciles à trouver
Interdit :
- Défaut automatique vers les plans annuels
- Cacher les options mensuelles derrière des touches supplémentaires
- Utilisation de compteurs pour créer une fausse urgence
- Pénurie fausse (« Seulement 3 places restantes ! »)
3. Rester les achats fonctionnels
Tout application avec IAP doit fournir un bouton de restauration des achats qui fonctionne sans nécessiter un contact de support. En savoir plus dans notre guide de démarrage 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 une exécution plus stricte de la vie privée. Apple exige maintenant :
Pour chaque autorisation :
- Explication claire avant de demander
- Utilisation spécifique (pas générique)
- Comment les données sont stockées/ partagées
- Quel que soit le cas
Exemple Info.plist entries:
<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 constituent la principale raison de rejet en 2025.
Exigences Android Google Play
📖 Guide Android complet : Pour obtenir des instructions de configuration complètes, consultez notre Guide de revue de l'application Android Play
1. La facturation Google Play est obligatoire
Pour les biens numériques (abonnements, contenu intégré dans l'application), vous devez utiliser la facturation Google Play. Les autres méthodes de paiement seront rejetées.
Biens numériques (obligation de Play Billing):
- Abonnements aux fonctionnalités
- Monnaie en jeu
- Contenu numérique (livres numériques, musique)
- Désactivations premium
Biens physiques (impossibilité d'utilisation de Play Billing):
- Marchandises réelles
- Services physiques
- Donations à des organismes à but non lucratif
Implémentation avec native-purchases:
Pour une configuration complète d'Android, voir Test de sandbox 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, notamment :
- Notification de renouvellement avant facturation
- Rappel du prix
- Accès facile à l'annulation
UI 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 politique de confidentialité
Obligatoire pour les applications IAP :
- Lien vers la politique de confidentialité dans le console de Play
- Lien vers la politique de confidentialité accessible en application
- Section des déclarations de sécurité des données
La sécurité des données doit déclarer :
- Collecte d'historique d'achat
- Adresses e-mail (pour les reçus)
- Identifiants de dispositif (prévention de la fraude)
- Données d'analytique

Raisons de refus courantes sur les deux plateformes
1. Mismatches de métadonnées
Pourquoi cela ne fonctionne pas :
- 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 indiqué dans l'application

Prévention :
- Mettre à jour les captures d'écran pour chaque soumission
- Correspondre à la description aux fonctionnalités réelles
- Tester toutes les affirmations sont-elles exactes ?
- Supprimer le texte promotionnel obsolète
2. Marketing trompeur
Détecteurs de rejet automatiques :
- “L'application #1” sans preuve
- “Infini” avec des limites cachées
- Avis ou notes de produits fictifs
- Dénigrement de la concurrence

Méthode de travail optimale : Soyez spécifique et factuel :
- ✓ « Rejoignez 50 000+ utilisateurs »
- ✗ « L'application la meilleure au monde »
- ✓ « Économisez jusqu'à 30 % avec le plan annuel »
- ✗ « Offre limitée ! »
3. Flux d'achat cassés
Testez ces éléments avant la soumission :
- Les produits chargent correctement
- La commande est effectuée avec succès
- Fonctionnalités premium sont activées immédiatement
- La restauration des achats fonctionne
- Les messages d'erreur sont amicaux pour les utilisateurs
- Les erreurs 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 soumission

Utilisez cette liste avant chaque soumission. Pour des procédures de test détaillées :
- Test iOS : Guide de test iOS Sandbox
- Test Android : Guide de test Android Sandbox
Test
- Testez toutes les tarifs 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 de test/sandbox fonctionnent
Tarifs et Conditions
- Les prix correspondent sur tous les plateformes
- Les termes d'abonnement sont clairement indiqués
- Les instructions de résiliation sont visibles
- La fréquence de facturation est affichée
- La durée de l'essai gratuit est précise
Vie privée & Autorisations
- Politique de confidentialité liée à la boutique
- Politique de confidentialité accessible en application
- Toutes les autorisations justifiées
- Descriptions de Info.plist claires (iOS)
- Sécurité des données complétée (Android)
Métadonnées
- Captures d'écran affichent la version actuelle
- La description correspond aux fonctionnalités
- Aucun texte de remplacement
- La note d'âge est correcte
- Toutes les affirmations sont testables
Code Qualité
- Aucun crash lors du lancement
- Toutes les fonctionnalités fonctionnent comme décrit
- Traitement des erreurs mis en œuvre
- États de chargement affichés
- Erreurs de réseau gérées
Calendrier de 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
- Évaluations en roulage : Puissez-vous en ligne à tout moment
- Violations de politique : Suspension immédiate possible
Conseil Pro : Soumettez les applications iOS du lundi au mercredi pour éviter les retards du week-end.
Que faire si votre application est rejetée

Étape 1 : Comprenez le problème
- Lisez attentivement le message de rejet
- Notez la ligne directrice spécifique citée
- Vérifiez les exemples fournis
- Recherchez des modèles dans les commentaires
Étape 2 : Corrigez soigneusement
- Adressez la cause racine, pas les symptômes
- Testez la correction de manière approfondie
- Documentez toutes les modifications
- Capturez une capture d'écran avant/après
Étape 3 : Répondez 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.
Appeal 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éenvoyez rapidement
- Les réenvois sont examinés plus rapidement
- Généralement dans les 24 heures
- Incluez un compte de test
- Référez à la soumission précédente
Mises à jour 2025 et nouvelles exigences
Changements iOS
Déclaration de la fonctionnalité de l'IA (Nouveau) Il faut étiqueter le contenu généré par l'IA
- Expliquez l'utilisation de l'IA
- Documentez la sécurité du contenu
- 2025 Updates and New Requirements
Clarté de l'abonnement amélioré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 la section 5.1.1 accrue
- 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 proposer 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 legacy sont obsolètes
- Outils de gestion de souscription améliorés
Meilleures pratiques pour réussir
1. Utilisez les SDKs appropriés
Le @capgo/native-purchases 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érer 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érifier plus tard)
3. Communiquer de manière claire
Les utilisateurs doivent toujours savoir :
- Ce qu'ils achètent
- Combien ça coûte
- Quand ils seront facturés
- Comment annuler
- Qu'est-ce qui se passe après la période d'essai
4. Testez intensivement
iOS Sandbox :
- 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
Android License Testing :
- Ajoutez des comptes de test dans Play Console
- Voyez la notification « Achat de test »
- Aucune charge réelle n'a lieu
Ressources
Documentation de la plateforme
- Lignes directrices de la plateforme d'applications iOS pour les évaluations
- Politiques des développeurs de Google Play
- Lignes directrices d'achat en application iOS
- Documentation de facturation de Google Play
Guides d'implémentation
- Guide de configuration iOS pour les achats natifs
- Guide de configuration Android pour les achats natifs
- Groupes de souscriptions iOS
- Souscriptions Android
Guides de revue détaillés
- Guide de revue complet de la plateforme d'applications iOS
- Guide de revue complet de la boutique Play Android
Besoin d'aide experte?
Vous vous retrouvez coincé avec la revue de votre application ou avez besoin d'une assistance concrète ? Notre équipe vous propose un soutien dédié pour la mise en œuvre 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 la mise en œuvre des achats en application
- Préparation de la revue de l'App Store
- Conseils sur la stratégie de soumission
- Assistance pour résoudre les refus
- Soutien complet pour la mise en place et les tests
Nous avons aidé des centaines d'applications à passer avec succès la revue !
Conclusion
Pour passer la revue de l'application avec des achats en application en 2025, il faut une attention aux détails, une communication claire et une mise en œuvre appropriée. Les principaux points à retenir :
- La transparence est obligatoire - Montrez les tarifs à l'avance, toujours
- Suivez les règles de la plateforme - 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 considérablement vos chances d'obtention d'une approbation en premier temps.
Rappelez-vous : les réviseurs cherchent 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 l'implémentation des achats en application ? Consultez notre __CAPGO_KEEP_0__ documentation exhaustive ou contactez la communauté pour obtenir de l'aide.