Brancher ton app en 15 minutes
MoneyMaker remplace RevenueCat : achats App Store, Google Play et Stripe validés sur ton serveur, accès premium, paywall à distance, analytique, carte des ventes et classements App Store. Ce guide suit exactement la checklist de l'onglet Démarrage — chaque étape s'y coche toute seule dès qu'elle fonctionne.
1. Compte et business2. SDK (par ton agent)3. App Store4. Google Play5. Stripe6. Tester7. Classements, Slack, outilsMigrer depuis RevenueCatFAQ
1. Compte et business · 1 min
- Va sur moneymaker-io.web.app → Continuer avec Google.
- + Nouveau business → tape le nom de ton app dans « Ton app sur l'App Store » → Chercher → clique sur ton app. Bundle ID, Apple ID et suivi des classements se remplissent seuls.
- Ajoute le package Android si tu en as un, puis Créer.
- Copie la clé secrète (
mm_sk_…) dans ton gestionnaire de mots de passe : elle n'est affichée qu'une fois. La clé publique (mm_pub_…) se retrouve à tout moment dans Réglages → Clés API.
2. Brancher le SDK — ton agent le fait · 5 min
- Onglet Connexions → Copier le prompt.
- Ouvre Claude à la racine de ton app, colle le prompt, remplace
<colle ta clé mm_pub_ ici>par ta clé publique. - L'agent ajoute le SDK (
https://github.com/amineprimesmr/moneymakersur iOS,com.github.amineprimesmr:moneymakervia JitPack sur Android), configure le lancement, la connexion utilisateur, le paywall et le bouton « Restaurer ».
À la main, c'est 4 lignes :
import MoneyMaker
MoneyMaker.configure(apiKey: "mm_pub_…") // au lancement
try await MoneyMaker.shared.logIn(user.id) // après connexion
if MoneyMaker.shared.isEntitled("premium") { … } // verrouiller
try await MoneyMaker.shared.purchase(package) // acheter (ou MoneyMakerPaywall())
3. App Store · 5 min
a) Clé API App Store Connect (une seule pour toutes tes apps)
- App Store Connect → Utilisateurs et accès → Intégrations → App Store Connect API → onglet Clés d'équipe → +.
- Nom « MoneyMaker », accès App Manager → Générer.
- Note l'Issuer ID (en haut) et le Key ID, puis Télécharger le fichier
.p8(téléchargeable une seule fois). - Dans MoneyMaker → Connexions → App Store Connect : colle Issuer ID, Key ID, le contenu du
.p8→ Connecter.
Ce que fait la connexion : elle lit ton app, importe tous tes abonnements et achats intégrés dans l'accès premium, active le suivi des classements et règle l'URL des notifications serveur V2 (production et sandbox) si elle était vide.
b) Clé In-App Purchase (recommandée)
- Même page → onglet Achats intégrés → + → nom « MoneyMaker » → Générer → télécharge le
.p8. - MoneyMaker → Réglages → Identifiants des stores : Issuer ID, Key ID de cette clé et contenu du
.p8→ Enregistrer.
Sans elle tout marche, mais MoneyMaker se fie au reçu signé ; avec elle, il demande à Apple le statut exact (période de grâce, renouvellement automatique coupé…).
4. Google Play · 10 min, une seule fois
- Google Cloud → IAM → Comptes de service (projet lié à Play Console) → Créer « moneymaker » → Clés → Ajouter une clé → JSON.
- Play Console → Utilisateurs et autorisations → Inviter l'email du compte de service → autorisations de l'app : Afficher les données financières et Gérer les commandes et les abonnements.
- MoneyMaker → Connexions → Google Play : package + contenu du JSON → Connecter (les abonnements sont importés).
- Notifications en temps réel : Pub/Sub → Créer un sujet « play-rtdn » → ajoute
google-play-developer-notifications@system.gserviceaccount.comen Éditeur Pub/Sub du sujet → Créer un abonnement de type Push vers l'URL copiée depuis MoneyMaker. - Play Console → ton app → Monétiser → Configuration de la monétisation → colle le nom complet du sujet → Envoyer un message de test.
5. Stripe · 1 min
- Stripe → Développeurs → Clés API → Créer une clé restreinte « MoneyMaker » avec : Abonnements, Factures, Clients, Charges, Prix, Produits en lecture ; Webhook Endpoints, Sessions Checkout, Portail client en écriture. (Une clé secrète
sk_marche aussi.) - MoneyMaker → Connexions → Stripe → colle la clé → Connecter.
C'est tout : le webhook est créé automatiquement, et tous tes abonnements ainsi que 12 mois de factures sont importés. Pour relier un client Stripe à un utilisateur, mets son id dans les métadonnées (app_user_id, firebaseUID, user_id ou uid — tous reconnus), ou utilise POST /v1/customers/{id}/stripe/checkout qui le fait pour toi.
6. Tester · 2 min
- iPhone : Réglages → App Store → Compte sandbox (créé dans App Store Connect → Utilisateurs et accès → Testeurs sandbox).
- Lance ton app depuis Xcode, achète un abonnement depuis le paywall.
- MoneyMaker → Événements : l'achat apparaît en quelques secondes avec l'étiquette sandbox. Les achats sandbox ne comptent jamais dans le revenu.
7. Bonus
- Classements App Store : onglet App Store → ajoute ton app et tes concurrents. Classements gratuits, payants et revenus dans 177 pays, carte des rangs, alertes (nouveau pays, top 10, n°1), cartes à partager, notes et avis traduits.
- Slack / Discord : Connexions → Intégrations → colle l'URL de webhook entrant : chaque vente et chaque alerte de classement y arrivent.
- Mixpanel, Amplitude, Segment, PostHog, AppsFlyer : même endroit. Pour AppsFlyer, l'app doit envoyer
$appsflyerIdviasetAttributes. - Ton backend : Réglages → Webhooks sortants. Chaque requête est signée
MoneyMaker-Signature: t=…,v1=HMAC-SHA256(secret, t.body). - App iPhone + widgets : Compte & accès → crée un jeton → colle-le dans l'app MoneyMaker. Widgets MRR et Classements sur l'écran d'accueil et l'écran verrouillé.
Migrer depuis RevenueCat
- Garde les mêmes identifiants produits : rien ne change côté App Store / Play.
- Remplace le SDK RevenueCat par MoneyMaker (ton agent le fait avec le prompt). Au premier lancement, le SDK resynchronise en silence les achats en cours de chaque utilisateur.
- Redirige les notifications serveur Apple et Play vers MoneyMaker (étapes 3 et 4) et désactive l'intégration AppsFlyer de RevenueCat pour ne pas compter les revenus deux fois.
- Ton backend appelle l'API RevenueCat (vérifier un abonné, offrir un mois) ou reçoit ses webhooks ? Remplace seulement l'URL de base par
https://moneymaker-io.web.app/v1/rcet la clé par ta clé secrète MoneyMaker : mêmes réponses, mêmes webhooks (format « revenuecat » dans Réglages). Pendant la transition, lis les deux et garde l'accès qui expire le plus tard. - Abonnés qui n'ouvrent plus l'app : leurs renouvellements sont rattachés automatiquement au bon compte dès qu'ils rouvrent l'app. Pour les rattacher tout de suite, importe la correspondance
original_transaction_id → app_user_iddepuis l'export RevenueCat (on l'a fait pour V2).
FAQ
Combien ça coûte ?
0 % de commission. Tu paies seulement l'hébergement Firebase, gratuit à petite échelle.
Mes données sont où ?
Dans Firestore, accessibles uniquement par le serveur. Les clés des stores ne sont jamais renvoyées au navigateur ; les clés API sont stockées hachées.
Un achat n'apparaît pas
Vérifie l'onglet Démarrage : si « notifications Apple » n'est pas coché, l'URL n'est pas réglée. Côté app, l'achat est aussi envoyé directement par le SDK : vérifie que MoneyMaker.configure est appelé avant le paywall.
Pourquoi le pays est « Inconnu » ?
Ventes antérieures au branchement, ou client Stripe sans adresse.
Les classements ne s'affichent pas
L'app doit être publiée. Premier scan en ~1 min sur les 25 plus gros marchés, puis tous les pays en 6 h.