Sıfırdan Kurulum Rehberi (Türkçe) — IAP, AdMob, Mağaza
Bu rehber, hiç deneyimin olmadığı varsayılarak yazıldı. Kod tarafı hazır; burada
senin panellerden yapman gereken işler var. Sırayla git, her aşamada bana “bitti”
de, bir sonrakine geçelim.
Kullanıcı adıyla ürün kimlikleri kodda sabit; rehberdeki isimleri birebir kullan.
Paket adı (her yerde aynı): com.wyclaew.saglikskoru
Maliyet özeti
- Google Play Console: 25 $ (tek seferlik, ömürlük).
- Apple Developer: 99 $/yıl (Mac’ten açmak indirim sağlamaz, her yerde aynı).
- RevenueCat: ücretsiz (aylık ~2.500 $ gelire kadar).
- AdMob: ücretsiz.
- EAS Build: ücretsiz kotayla başlanabilir.
⚠️ Aşama 0 — Gemini anahtarını döndür (ACİL, güvenlik)
Eski anahtar koda sızmıştı. 5 dakikalık iş:
- https://aistudio.google.com/app/apikey → eski anahtarı sil, yeni oluştur.
- Terminal (proje klasöründe):
firebase functions:secrets:set GEMINI_API_KEY
# açılan yere yeni anahtarı yapıştır, Enter
firebase deploy --only functions
Aşama 1 — Google Play Console hesabı (Android)
- https://play.google.com/console/signup → bir Google hesabıyla gir (uygulamaya özel
yeni bir Gmail açman önerilir).
- Hesap tipi: “Kendim” (Bireysel) seç (en hızlısı).
- Kişisel bilgiler + adres + telefon gir, 25 $ öde.
- Kimlik doğrulama: Google resmi kimlik (ehliyet/pasaport) ister. Doğrulama
birkaç gün sürebilir.
- ❗ Önemli kural: Kasım 2023 sonrası açılan bireysel hesaplar, uygulamayı
yayına almadan önce en az 20 test kullanıcısıyla 14 gün kapalı test yapmak
zorunda. Yani Play’de yayın, hesap açıldıktan sonra ~2-3 haftalık bir süreç. Bunu
şimdiden bilelim ki sürpriz olmasın.
➡️ Bu doğrulama beklerken Aşama 4 (AdMob) ücretsiz ve hızlı — paralel yapacağız.
Aşama 2 — Play Console’da uygulamayı oluştur
- Play Console → Uygulama oluştur. Ad: “Sağlık Skoru”. Dil: Türkçe. Tip: Uygulama. Ücretsiz.
- Sol menüde sırayla doldurulacak (yayın için zorunlu):
- Uygulama içeriği: Gizlilik Politikası URL’si (Aşama 6), reklamlar var (Evet),
veri güvenliği formu, hedef kitle/yaş, içerik derecelendirme anketi.
- Mağaza girişi: açıklama, ikon (512×512), feature grafiği (1024×500), ekran görüntüleri.
Aşama 3 — Ürünleri (IAP) oluştur — Play Console
Monetize → Products altında, kimlikler kodla birebir aynı olmalı:
- Subscriptions (abonelik):
healthscore_premium_monthly — aylık premium.
healthscore_premium_yearly — yıllık premium.
- Her ikisine de
premium adında bir base plan/fiyat ekle.
- In-app products (consumable):
healthscore_100_tokens — 100 token.
Aşama 4 — AdMob (reklam) — ÜCRETSİZ, HEMEN YAPILABİLİR
- https://admob.google.com → Google hesabıyla gir, hesabı oluştur (ülke/zaman dilimi).
- Apps → Add app → platform Android → “Uygulamam henüz yayında değil” seç,
ad: “Sağlık Skoru”. → Sana bir App ID verir:
ca-app-pub-XXXXXXXX~YYYYYYYY.
- O uygulamada Ad units → Add ad unit → Rewarded oluştur. → Bir Ad unit ID
verir:
ca-app-pub-XXXXXXXX/ZZZZZZZZ.
- (iOS de yapacaksak: aynısını platform iOS seçerek bir kez daha yap → ayrı App ID.)
- Bu 2 ID’yi (App ID + Rewarded unit ID) bana gönder → kodu ben girerim.
Not: AdMob hesabı tam onaylanması için genelde gerçek trafik ister, ama ID’leri hemen alırsın.
Aşama 5 — RevenueCat (IAP beyni) — ÜCRETSİZ
Bunu Aşama 2/3’ten sonra yap (mağaza uygulaması ve ürünler var olmalı).
- https://www.revenuecat.com → ücretsiz hesap, yeni Project oluştur.
- Apps → +New → Play Store uygulamasını ekle (paket adı
com.wyclaew.saglikskoru).
- Google’dan bir Service Account JSON isteyecek (Play Console → API erişimi). Adımları
RevenueCat ekranında gösterir; takılırsan bana sor.
- Entitlements → +New → kimlik:
premium (kodda bu isim bekleniyor).
- Products → Play’deki 3 ürünü ekle; abonelikleri
premium entitlement’a bağla.
- Offerings → default → paketleri ekle:
$rc_monthly, $rc_annual, token paketi.
- API Keys → Google (Play) Public API Key‘i kopyala → bana gönder (veya
.env‘e koy):
EXPO_PUBLIC_REVENUECAT_GOOGLE_KEY=...
- (iOS varsa: App Store uygulamasını da ekle, Apple API Key‘i al →
EXPO_PUBLIC_REVENUECAT_APPLE_KEY=...)
Aşama 6 — Yasal sayfalar (zorunlu)
- Gizlilik Politikası ve Kullanım Koşulları sayfalarını barındır (ücretsiz:
GitHub Pages, Google Sites, Notion public sayfası). İçinde: kamera, yapay zeka analizi,
reklam (AdMob), satın alma, e-posta ile giriş, hesap verisi geçmeli.
- URL’leri Play/App Store formlarına ve uygulamaya gireceğiz.
- Hesap silme: uygulama içinde hazır (Profil → “Hesabımı Sil”). Apple ayrıca web’den
silme talebi sayfası isteyebilir — basit bir iletişim/silme formu yeter.
Aşama 7 — Anahtarları projeye gir (BU KISMI BEN YAPARIM)
Sen ID/anahtarları topladıkça bana ver; ben şuralara koyarım:
app.json → AdMob androidAppId / iosAppId.
.env / EAS secrets → EXPO_PUBLIC_REVENUECAT_GOOGLE_KEY, EXPO_PUBLIC_REVENUECAT_APPLE_KEY,
EXPO_PUBLIC_ADMOB_REWARDED, Google OAuth client ID’leri.
eas.json → production’da EXPO_PUBLIC_IAP_SIMULATION=0 (zaten ayarlı).
Aşama 8 — Build & test (gerçek cihaz)
npm install -g eas-cli
eas login
eas build --profile preview --platform android # APK (telefonuna kurup test)
- Gerçek IAP testi için:
eas build --profile production → Play Console Internal testing‘e
yükle → test hesabınla satın almayı dene (gerçek para çekilmez).
- RevenueCat sandbox + Restore + Hesap silme + token akışlarını test et (STORE_RELEASE.md’deki liste).
Hangi anahtarı ne zaman bana göndereceksin (özet)
| Ne zaman | Bana gönder |
|—|—|
| AdMob bitince | Android App ID + Rewarded unit ID (+ iOS varsa) |
| RevenueCat bitince | Google API Key (+ Apple API Key) |
| Google Girişi için | OAuth Web/Android/iOS client ID’leri |
| Yasal sayfalar | Gizlilik + Koşullar URL’leri |