docs: record EAS env var and entitlement identifier bugs

This commit is contained in:
AyrisAI
2026-08-20 16:16:14 +03:00
parent bb4cd1b0fc
commit 6055130828
+4 -2
View File
@@ -28,8 +28,10 @@ Faz tanımları için [ROADMAP.md](./ROADMAP.md). Bu dosya ne yapıldığını,
- App Store Connect: her iki üründe de 7 günlük ücretsiz deneme (introductory offer, `ONE_WEEK`/`FREE_TRIAL`) Türkiye territory'sinde tanımlandı. - App Store Connect: her iki üründe de 7 günlük ücretsiz deneme (introductory offer, `ONE_WEEK`/`FREE_TRIAL`) Türkiye territory'sinde tanımlandı.
- Mobile: `onPublish` artık önce Pro entitlement kontrolü yapıyor — aktif değilse yayınlama isteğini API'ye hiç göndermeden paywall'a yönlendiriyor (bu, PRD §15'teki "abonelik sona erince public menü kapanır, yeniden ödeme ile aktifleşir" davranışını doğal olarak da kapsıyor, çünkü her publish denemesi tekrar kontrol ediyor). Paywall ekranı, introductory offer'ı olan paketlerde "7 gün ücretsiz dene" rozetini gösteriyor. - Mobile: `onPublish` artık önce Pro entitlement kontrolü yapıyor — aktif değilse yayınlama isteğini API'ye hiç göndermeden paywall'a yönlendiriyor (bu, PRD §15'teki "abonelik sona erince public menü kapanır, yeniden ödeme ile aktifleşir" davranışını doğal olarak da kapsıyor, çünkü her publish denemesi tekrar kontrol ediyor). Paywall ekranı, introductory offer'ı olan paketlerde "7 gün ücretsiz dene" rozetini gösteriyor.
**Kalan (henüz yapılmadı):** **Tamamlandı (devamı, 2026-08-20 — gerçek cihaz/TestFlight testi sırasında bulunan bug'lar):**
- Gerçek cihazda satın alma akışı hiç test edilmedi — native modül olduğu için Expo Go'da çalışmaz, EAS/dev-client build gerekiyor (TestFlight build'leri zaten bunu kullanıyor). Yeni build alınıp gerçek trial/satın alma denenmeli. - `eas.json`'ın `production` build profili kendi sabit `env` bloğunu kullanıyor — local `.env` cloud/local EAS build'lerine hiç gitmiyor. `EXPO_PUBLIC_REVENUECAT_API_KEY` bu listede yoktu, "There is no singleton instance" hatasına sebep oluyordu. Eklendi.
- `apps/web/src/middleware.ts`'deki trailing-slash düzeltmesi gibi, entitlement kontrolü de gerçek bir bug barındırıyordu: RevenueCat'teki entitlement identifier'ı `U+2024` (normal nokta değil, "ONE DOT LEADER") içeriyor — kodumuzdaki sabit string `"Menul.io Pro"` (normal nokta) hiçbir zaman eşleşmiyordu. Gerçek bir sandbox trial satın alması RevenueCat'te "active" görünürken uygulama hâlâ "Ücretsiz plan" gösteriyordu. RevenueCat API'si entitlement identifier'ını sonradan değiştirmeye izin vermiyor (405) — kod tarafında düzeltildi: artık spesifik bir isimle değil, "herhangi bir aktif entitlement var mı" mantığıyla kontrol ediyor (bu uygulamada tek entitlement türü olduğu için güvenli).
- Gerçek satın alma/trial akışı gerçek cihazda (TestFlight, `eas build --local`) doğrulandı`menu_pro_monthly` için gerçek bir sandbox trial satın alması RevenueCat dashboard'unda göründü.
## Faz 0 — Altyapı ✅ (2026-08-19) ## Faz 0 — Altyapı ✅ (2026-08-19)