Sunum modu: isFeaturesClose
Uygulamanın hangi yüzünü göstereceğini belirleyen tek karar. Formül
şudur — iki yoldan biri sağlanırsa devreye girer:
isFeaturesClose = isAllFeatureClosed
|| (appVersion == uygulamanın sürümü
&& appBuildNumber == uygulamanın build numarası)
-
Herkes için:
isAllFeatureClosed = true →
bütün cihazlarda devreye girer. Bu anahtar
panelde Sunum modu bölümünde, yazılabilir.
-
Tek bir sürüm için:
appVersion ve
appBuildNumber ikisi birden hedef sürümle
birebir eşleşirse yalnızca o build'de devreye girer. Bu iki alan da
Sunum modu bölümünde, anahtarın hemen altında.
Adı yanıltıcı: hiçbir şey kapanmıyor
Anahtarın adı "tüm özellikler kapalı" der ama uygulama kodunda olan
bu değil. Devreye girdiğinde alt menüdeki sekmeler değişir ve
uygulama WhatsApp'sız bir araç setine benzer:
| Kapalıyken (normal) | Açıkken (sunum modu) |
| 1 | Durum | Yapay zekâ |
| 2 | Sohbetler | Hikaye oluşturucu |
| 3 | İkili sohbet | Ses editörü |
| 4 | Profiller | İkili sohbet |
| 5 | Ses editörü | Ayarlar |
Bunlarla birlikte:
- İkili sohbet (WhatsApp Web) her iki modda da durur — sadece
içindeki ayarlar düğmesi ve "premium'a geç" kaplaması gizlenir.
- Abonelik ekranındaki özellik listesi değişir: silinen mesaj ve
profil vaatleri yerine reklamsızlık, hikaye ve yapay zekâ gelir.
- Ayarlar'da SSS bağlantısı gizlenir.
- Kayıtlı hiçbir veri silinmez.
false yapınca her şey
aynen geri gelir.
Sürüm bazlı yolu kullanırken dikkat: appVersion ve
appBuildNumber ikisinin de birebir eşleşmesi
gerekir. Birini yanlış yazarsan hiçbir cihazda devreye girmez ve
panelden bunu anlamanın yolu yoktur — bir şey olmaması ile yanlış
yazmış olmak aynı görünür. Değerleri App Store Connect'teki build'den
kopyala, tahmin etme. İş bitince iki alanı da boşalt: build yayında
kaldığı sürece o sürümü kullanan herkes sunum modunda kalır.
Anahtarlar
"Sıfırla" ne yapar?
Her bölümün başındaki Bu bölümü sıfırla ve alttaki
Hepsini sıfırla düğmeleri sadece formu boşaltır.
Firebase'e o anda hiçbir şey yazılmaz.
- Vazgeçtiysen Yenile'ye bas; canlı değerler geri gelir.
- Uygulamak istiyorsan Yayınla'ya bas; o anahtarlar Remote
Config'ten silinir ve uygulama her biri için kendi varsayılanına döner.
Sıfırlamak "her şeyi kapat" demek değildir. Varsayılanı açık
olan bir özellik (örneğin ikili sohbet) sıfırlandığında açık kalır;
varsayılanı kapalı olan (reklamlar, açılış paywall'ı) kapanır.
Her alanın altındaki "Boş bırakılırsa:" satırı hangisi olduğunu söyler.
{code} yer tutucusu
Eşleşme kodu bildiriminin gövdesine {code} yazarsan,
uygulama oraya gerçek kodu koyar:
"Lütfen {code} girin" → "Lütfen 1234-5678 girin"
{code} yazmayı unutursan kod yine de alt satıra eklenir —
bildirimin tek işi kodu taşımak, kazara silinmesi kabul edilmiyor.
{kod} ve {CODE} yazımları da çalışır.
Dil seçimi
Dile göre metin alanı bir JSON nesnesi alır:
{
"tr": { "title": "Bağlantı kodun", "body": "Lütfen {code} girin" },
"en": { "title": "Your link code", "body": "Enter {code} in WhatsApp" }
}
Bölge etiketleri temel dile eşleşir: "pt" girdisi
pt_BR cihazları da kapsar. Kısayol olarak sadece gövde
yazmak istersen "tr": "Lütfen {code} girin" yeterli.
Metin seçilirken sıra şudur, ilk dolu olan kazanır:
- Dile göre metin (cihazın diline uyan girdi)
- Tek başlık/gövde alanları
- Uygulamanın kendi çevirisi
Başlık ve gövde ayrı ayrı çözülür — sadece gövdeyi doldurman
başlığı boşaltmaz.
Ücretsiz kullanıcı hatırlatıcısı ne zaman gider?
Her koşul ayrı ayrı sağlanmak zorunda:
| Koşul | Anlamı |
| Açık mı | freeNotifEnabled = true olmalı. Varsayılan kapalı. |
| Abone değil | Abone veya deneme sürümündeki kullanıcıya asla gitmez. |
| İlk gecikme geçti | İlk açılıştan freeNotifInitialDelayHours saat geçmiş olmalı. |
| Kampanya penceresi | İlk açılıştan freeNotifCampaignDays gün geçtiyse durur. |
| Toplam adet | Kullanıcı ömür boyu en fazla freeNotifMaxCount tane alır. |
| Aralık | Öncekinden bu yana freeNotifIntervalHours saat geçmiş olmalı. |
Bu kontrol bildirim gönderileceği anda yapılır, önceden zamanlanmaz.
Sebebi: günler önce sıraya alınmış bir bildirim, kullanıcının bu arada
abone olduğunu göremez ve para ödeyen birine "premium ol" derdi.
Zorunlu güncelleme ile kill switch farkı
İkisi de eski sürümleri hedefler ama sonuçları farklıdır:
| Kill switch (bu panelde yok) | Zorunlu güncelleme |
| Anahtar |
appVersion + appBuildNumber |
minSupportedVersion + forceUpdate |
| Etkisi |
Özellikler kapanır, kullanıcıya açıklama yok |
Güncelleme ekranı çıkar, mağazaya yönlendirir |
| Eşleşme |
Sürüm birebir eşleşirse |
Sürüm bundan düşükse |
minSupportedVersion'ı mağazadaki en güncel sürümün üstüne
yazma. O zaman herkes güncelleme ekranında kilitlenir ama indirebileceği
bir sürüm yoktur — forceUpdate da açıksa uygulama tamamen
kullanılamaz hale gelir.
Süreli indirim: kampanya kimliği
offerCampaignId kullanıcı sayaçlarının anahtarıdır. Kaç kez
gösterildiği ve en son ne zaman gösterildiği bu kimliğe bağlı tutulur.
- Yeni kampanya başlatıyorsan kimliği değiştir — herkes teklifi
yeniden görmeye başlar.
- Mevcut kampanyanın metnini/süresini düzeltiyorsan kimliğe
dokunma — yoksa teklifi görüp kapatmış olan herkes tekrar görür.
Değişiklik ne zaman cihazlara ulaşır?
Kullanıcı uygulamayı tamamen kapatıp yeniden açtığında.
Başka bir an yok.
Uygulama ayarları yalnızca açılışta bir kez çeker. Arka planda duran
bir uygulama hiçbir şey yenilemez; kullanıcı uygulamaya geri dönse
bile eski ayarlarla çalışmaya devam eder. Uygulama listesinden
kaydırıp kapatması, sonra tekrar açması gerekir.
Pratikte bu şu demek: bir değişikliği yayınladıktan sonra
kullanıcıların büyük kısmına ulaşması saatler, hatta günler
alabilir. Acil bir düzeltme yapıyorsan bunu hesaba kat.
Nereden başlamalı? (ilk kez kullanıyorsan)
Bu panel tek bir ortama yazar ve o ortam canlı uygulamadır.
Test ortamı, kademeli yayın veya belirli kullanıcıya gönderme yok.
Yayınla dediğin an bütün kullanıcılar için geçerlidir.
Bu yüzden güvenli sıra şudur:
- Değiştireceğin tek bir alanı doldur. Aynı anda birden
fazla şey değiştirme — bir sorun çıkarsa hangisi olduğunu
bilemezsin.
- Yayınlamadan önce Yenile'ye basabilirsin: yazdıkların
gider, canlıdaki değerler geri gelir. Vazgeçmenin yolu budur.
- Bu bölümü yayınla'ya bas. Sadece o bölümün anahtarları
gönderilir, diğerlerine dokunulmaz.
- Kendi telefonunda dene: uygulamayı listeden kaydırıp
tamamen kapat, sonra yeniden aç. Değişikliği göremiyorsan
yayınlanmamış demektir — panelde Yenile'ye basıp değerin
gerçekten orada olduğunu kontrol et.
- Beğenmediysen alanı boşalt ve tekrar yayınla; uygulama kendi
varsayılanına döner.
Yayınladıktan sonra eski değeri geri almanın otomatik yolu yoktur.
Önemli bir alanı değiştirmeden önce eski değeri bir yere not et.
“HENÜZ ÇALIŞMIYOR” yazan alanlar
Bazı alanların üstünde turuncu bir HENÜZ ÇALIŞMIYOR etiketi ve
gri bir kutu görürsün. Bunlar panele hazırlanmış ama uygulamanın
henüz okumadığı ayarlardır: doldursan da hiçbir şey olmaz.
Bu yüzden yazılamaz hâle getirildiler. Daha önce normal görünüyorlardı
ve bu tehlikeliydi — örneğin “reklamları kapat” dediğini sanıp
reklamların açık kalması mümkündü. Etiketin yanındaki not, o ayarın
yerine şu an neyin geçerli olduğunu söyler.