Integration Guide: RevenueCat & Google Play In-App Purchases (One-Time)
Last updated: 6/9/2026
راهنمای جامع اتصال RevenueCat به Google Play برای خریدهای درونبرنامهای (In-App Purchases)
پیادهسازی پرداخت درونبرنامهای با RevenueCat در فلاتر و اتصال آن به گوگلپلی، چالشها و نکات پنهانی دارد که در صورت عدم رعایت، باعث بنبست در کنسول گوگل پلی میشود. در این مستند، تمام نکات کلیدی و روال صحیح ثبت شده است.
۱. باز کردن قفل بخش Products در گوگلپلی
به صورت پیشفرض، منوی In-App Products در گوگل پلی قفل است و شما نمیتوانید محصولی (مثلاً نسخه Premium) تعریف کنید.
- راه حل: باید حتماً یک نسخه اولیه از اپلیکیشن (فایل
.aabکه شامل پرمیشنBILLINGدر مانیفست است) را در بخش Internal Testing آپلود کنید. - نکته مهم: نیازی نیست تستر اضافه کنید! خطای زرد رنگ گوگل مبنی بر نداشتن تستر را نادیده بگیرید و دکمه Save and publish را بزنید. به محض انتشار در این بخش، منوی Products باز میشود.
۲. خطای کلید امضا (Signing Config) هنگام آپلود AAB
یکی از خطاهای رایج هنگام آپلود فایل AAB این است که گوگل پلی اعلام میکند بیلد با کلید اشتباهی (Debug Key) امضا شده است.
- علت: در فایل
android/app/build.gradle.kts، فلاتر گاهی به صورت پیشفرض در بلاکreleaseاز کلید دیباگ استفاده میکند تا بیلد محلی خطا ندهد. - راه حل: کد زیر را بررسی و اصلاح کنید:
buildTypes { release { // This line must be set to release, not debug signingConfig = signingConfigs.getByName("release") } }
۳. خطای آپلود آیکون محصول (Icon) در کنسول گوگل
هنگام ساخت یک محصول جدید (One-time product)، گوگل یک آیکون اجباری میخواهد. اما اغلب تصاویر (بهخصوص تصاویر ساخته شده با هوش مصنوعی) را با خطای نامشخص رد میکند.
🛑 قوانین سختگیرانه گوگل برای آیکون:
- تصویر باید دقیقاً نسبت ۱:۱ داشته باشد.
- سایز آن بین ۵۱۲ تا ۱۰۸۰ پیکسل باشد.
- هیچ متنی روی آن نباشد.
- مهمتر از همه: هیچگونه کانال شفافیت (Alpha Channel) نداشته باشد.
🛠️ راه حل (برای کاربران مک):
برای حذف کامل متادیتاها و کانالهای نامرئی، یکبار عکس را به فرمت BMP و سپس مجدداً به PNG با سایز دقیق ۵۱۲ تبدیل کنید. با اجرای دستورات زیر در ترمینال مک، عکسی ۱۰۰٪ تضمینی ساخته میشود:
sips -s format bmp input_image.png --out temp.bmp sips -z 512 512 -s format png temp.bmp --out final_icon.png
۴. پیکربندی صحیح RevenueCat برای اندروید
برای اینکه کلید API پلتفرم گوگل پلی را از رونیوکت (RevenueCat) دریافت کنید، لزوماً در همان لحظه اول نیاز به آپلود Service Account JSON ندارید (اگرچه برای نهاییشدن خریدها در آینده الزامی است). ترتیب صحیح ساختاربندی در RevenueCat به این شکل است:
- Apps: اضافه کردن اپلیکیشن Android و وارد کردن دقیق
Package Name. - Products: ساخت محصول جدید متصل به اپلیکیشن.
- نکته مهم: نوع محصول برای خریدهای دائمی باید حتماً Non-consumable باشد.
- فیلد Identifier: باید دقیقاً با
Product IDساخته شده در گوگلپلی یکسان باشد (مثلاًpremium).
- Entitlements: باز کردن Entitlement اصلی (مثلاً
premium) و اتصال (Attach) محصول مرحله قبل به آن. - Offerings: ساخت یک Offering جدید با شناسه
default. - Packages: ساخت یک پکیج در داخل Offering با شناسه
lifetime(حتماً از دراپداون نوع Lifetime انتخاب شود). در نهایت محصول را به این پکیج متصل کنید. - API Key: رفتن به منوی API keys و کپی کردن کلید
goog_XXXXXXجهت استفاده در کدهای فلاتر.
💡 نکته کلیدی (TIP)
همیشه قبل از بیلد نهایی: متغیر
_isDebugPremiumیا هر شبیهساز پرداخت آفلاینی که برای محیط توسعه (Development) ساختهاید راfalseکنید تا اپلیکیشن در حالت Production، فاکتورها را از RevenueCat استعلام بگیرد.