İçeriğe geç

Kurulum rehberleri · Ionic / Capacitor

Ionic ve Capacitor uygulamaları için Google Play kapalı testi

Web uygulaman native bir Android projesinin içinde çalışır, bu yüzden sürüm her Android uygulaması gibi derlenir. Bu rehber Capacitor'a özgü kısımları anlatır: web derlemesi, npx cap sync android, Android Studio'da imzalama ve hedef SDK; ardından 12 test ediciyi 14 gün opt-in tutmak.

Derleme
npx cap sync android
Sürüm kodu
android/app/build.gradle → versionCode
Hedef API
variables.gradle → targetSdkVersion = 36

İmzalı app bundle derle

  1. Web uygulamasını derle

    Üretim web derlemeni çalıştır (çoğu Ionic Angular, React ve Vue projesinde npm run build); Capacitor yapılandırmasında webDir olarak ayarlı klasör güncel olsun.

  2. Android'e eşitle

    npx cap sync android, web derlemesini native projeye kopyalar ve native eklentileri günceller. Atlarsan dünkü JavaScript'i yayınlarsın.

  3. Android Studio'yu aç

    npx cap open android çalıştır.

  4. Paketi oluştur

    Build → Generate Signed Bundle/APK'yı seç, Android App Bundle'ı işaretle, anahtar deposunu seç ya da oluştur, release varyantını seç ve Create'e tıkla.

Terminal
npm run build
npx cap sync android
npx cap open android

Komut satırını ya da CI'ı mı tercih ediyorsun? npx cap build android, --androidreleasetype AAB ve anahtar deposu seçenekleriyle imzalı paket üretir. Şifreleri depoya eklenen bir dosyadan değil, ortam değişkenlerinden ver:

Terminal
npx cap build android --androidreleasetype AAB \
  --keystorepath ../upload-keystore.jks --keystorealias upload \
  --keystorepass "$KEYSTORE_PASS" --keystorealiaspass "$KEY_PASS"

Yükleme anahtarı ve Play Uygulama İmzalama

Google Play yeni uygulamalarda Play Uygulama İmzalama ister. Android Studio sihirbazında (Create new) oluşturduğun ya da npx cap build'e verdiğin anahtar deposu senin yükleme anahtarındır; ayrı uygulama imzalama anahtarını ilk yüklemenden sonra Google saklar.

Android Studio yeni bir anahtar için en az 25 yıl geçerlilik önerir. Native projeyi yeniden oluşturma ihtimaline karşı .jks dosyasını android/ klasörünün dışında tut ve iki şifreyle birlikte yedekle. Yükleme anahtarı kaybolursa Play Console'dan sıfırlama isteyebilirsin.

Derleme seçeneklerini Capacitor yapılandırmasında tutuyorsan şifreleri depoya eklediğin dosyaya yazma. Yapılandırma deponun bir parçasıdır.

Sürüm kodu ve hedef API düzeyi

Capacitor sürümü package.json'dan okumaz. Google Play'in gördüğü değerler android/app/build.gradle içindedir; her yüklemeden önce versionCode'u artır:

android/app/build.gradle
android {
    defaultConfig {
        versionCode 2
        versionName "1.0.1"
    }
}

31 Ağustos 2026'dan beri yeni uygulamalar ve güncellemeler Android 16'yı (API düzeyi 36) hedeflemek zorunda. Capacitor targetSdkVersion değerini android/variables.gradle içinde belirler ve her ana sürüm tam olarak tek bir değeri destekler: Capacitor 8 36'yı, Capacitor 7 35'i kullanır. Özel değerler desteklenmez; API 36'ya giden yol sayıyı elle değiştirmek değil, eklentilerinle birlikte Capacitor 8'e geçmektir.

android/variables.gradle
ext {
    // ...
    targetSdkVersion = 36
}

Ionic ve Capacitor tuzakları

  • Açık kalan canlı yeniden yükleme. Capacitor yapılandırmasındaki bir server.url, uygulamanın geliştirme makinenin adresini yüklemesine yol açar. Test ediciler boş ekran görür. Sürüm derlemesinden önce kaldır.
  • Bayat web varlıkları. Önce npx cap sync android çalıştırmadan Android Studio'da paket oluşturmak önceki web derlemesini yayınlar.
  • Başka ana sürümdeki eklentiler. Tüm @capacitor/* paketleri ve topluluk eklentileri @capacitor/android ile aynı ana sürümde olmalı. Uyumsuzluk native derleme hatalarına ya da çalışırken çökmelere yol açar.
  • Şifresiz (cleartext) istekler. Android düz http:// trafiğini varsayılan olarak engeller. Üretim derlemeleri yalnız HTTPS API'leri çağırmalı.
  • Native eklentiler ve 16 KB sayfalar. .so kitaplığı içeren eklentiler 16 KB bellek sayfalarını desteklemeli. Play Console bunun için uyarır ve 1 Şubat 2027'den itibaren desteklemeyen güncellemeler yayınlanamaz.
  • Yalnız tarayıcıda test etmek. Geri tuşu, izinler ve derin bağlantılar Android WebView'da farklı davranır. Yüklemeden önce sürüm derlemesini gerçek bir cihaza kur.

Test edicilerin WebView'da gördüğünü ayıkla

Capacitor release derlemelerindeki sorunların çoğu web katmanındadır; bu yüzden en iyi giriş yolu zaten bildiğin tarayıcı araçlarıdır. Release derlemesinde bunlar kapalıdır: webContentsDebuggingEnabled varsayılan olarak false olur, Capacitor'ın kendi günlükleri de varsayılanı debug olan loggingBehavior ayarını izler; yani release derlemeleri sessiz kalır.

  1. Debug derlemesinde yeniden üret

    Uygulamayı Android Studio'dan bir telefonda çalıştır, bilgisayarındaki Chrome'da chrome://inspect aç ve WebView'ı seç. Web kodun için konsol, ağ paneli ve kesme noktaları elinde olur. Edge'de edge://inspect aynı şekilde çalışır.

  2. Release derlemesini yalnız yerelde incele

    Hata yalnız release'te çıkıyorsa kendin kuracağın bir derlemede webContentsDebuggingEnabled değerini geçici olarak true yap. Bu derlemeyi asla yükleme: uygulamanın web içeriğini her cihazda hata ayıklanabilir hale getirir.

  3. Yerel çökmeleri Play Console'da topla

    Capacitor'ın Java kodundaki ya da yerel eklentilerdeki çökmeler İzle ve iyileştir → Android vitals → Çökmeler ve ANR'ler altında görünür. R8 açıksa .aab içindeki eşleme dosyası onları okunur yapar.

capacitor.config.ts (local debug build only)
const config: CapacitorConfig = {
  // ...
  android: {
    // Never ship this to Google Play
    webContentsDebuggingEnabled: true,
  },
};

Test edicilerden cihaz modelini, Android sürümünü ve Android System WebView sürümünü iste. Yalnız WebView'da görülen hataların çoğu bu son sayıya bağlıdır; android.minWebViewVersion altındaki sürümler de uygulamanın desteklediği aralığın dışındadır.

Kısaca Play Console: kapalı testten üretime

Ionic / Capacitor paketin derlenip imzalandıktan sonra gerisi Play Console'da geçer ve her çatıda aynıdır. Bu, kısa kontrol listesi; her menü ve ekran Play Console adımlarının tamamında anlatılıyor.

  • Uygulama kurulumunu bitir: Kontrol Paneli'nde gizlilik politikası, uygulama erişimi, reklamlar, içerik derecelendirmesi, hedef kitle, veri güvenliği ve mağaza girişi.
  • Kapalı test sürümü oluştur: Test et ve yayınla → Test → Kapalı test altında test edicilerinin ülkelerini seç, .aab dosyasını yükle ve incelemeye gönder.
  • Test edicileri Google Group ile ekle: Test ediciler sekmesinde grubu ekle ve opt-in bağlantısını paylaş. Bağlantı, kanal Yayınlandı durumuna geçince çalışır.
  • En az 12 test ediciyi 14 gün kesintisiz opt-in tut. Dahili test sayılmaz; ayrılıp geri dönen birinin 14 günü baştan başlar.
  • Test sırasında en az bir güncelleme yayınla ve test edicilerin ne bulduğunu, senin neyi değiştirdiğini not et.
  • Üretime başvur: Kontrol Paneli'nden başvur ve testin, uygulaman ve hazırlığın hakkındaki üç bölümü yanıtla. Karar Google'ındır; kimse onayı garanti edemez.

Ayrılanları hesaba kat: 12 kişiden fazlasını bul ki biri ayrıldığında takvimin uzamasın. Play Console adımlarının tamamını gör.

Play Console adımlarının tamamı

Kapalı test kanalı, Google Group ve opt-in bağlantısı, 12 test edici / 14 gün kuralı ve üretim başvurusu, tek sayfada adım adım.

Play Console adımlarını aç

Düzeltme gönder ve canlı güncellemelerin yerini bil

Web uygulamasını yeniden derle, eşitle, versionCode'u artır ve aynı kapalı test kanalı için yeni bir imzalı paket oluştur:

Terminal
npm run build
npx cap sync android
npx cap open android

Google Play'in Cihaz ve Ağ Kötüye Kullanımı politikası bir uygulamanın kendini Google Play dışında güncellemesini yasaklar; WebView'daki JavaScript gibi bir yorumlayıcıda ya da sanal makinede çalışan kod için ise istisna tanır. Web katmanı için canlı güncelleme servislerinin var olma nedeni budur. Yerel kod, eklentiler ve izinler her zaman Google Play üzerinden yeni bir paket ister.

Kapalı test sırasında en düz yol, kapalı test kanalında yeni bir versionCode'dur: incelenir, test ediciler onu Google Play'den alır ve sürüm geçmişinde görünür. Ayrıca bir canlı güncelleme servisi kullanıyorsan onu gerçek düzeltmelere ayır ve kapalı test kanalındaki web derlemesini onunla eşit tut.

  • WebView alt sınırına dikkat et. android.minWebViewVersion varsayılan olarak 60 olur ve 55 altına inemez. Sorun yaşayan test ediciler önce Google Play'den Android System WebView'ı güncellemeli.
  • Karışık içerik yok. android.allowMixedContent varsayılan olarak kapalıdır ve üretim için değildir. Her API'yi ve varlığı HTTPS üzerinden sun, server.cleartext ayarını da varsayılan false değerinde bırak.
  • Her derlemeden önce sync et. Her düzeltme, web derlemesinden sonra npx cap sync android ister; yoksa yeni paket hala eski JavaScript'i içerir.

Sık sorulan sorular

Bir test edicinin telefonunda Chrome DevTools kullanabilir miyim?

Google Play'den kurduğu derlemede hayır, çünkü release derlemeleri WebView hata ayıklamasını açmaz. Yeniden üretme adımlarını iste, aynı sürümü hata ayıklama açık şekilde kendin kur ve chrome://inspect ile incele.

Test ediciler neden boş ekran görüyor?

Genellikle paket canlı yeniden yüklemeden kalma bir server.url içerdiği için ya da bir istek düz http:// üzerinden başarısız olduğu için. Önce Capacitor yapılandırmasına ve bir debug derlemesinin ağ paneline bak.

Capacitor 7'de kalabilir miyim?

Hedef API son tarihinden sonraki yeni yüklemeler için hayır: her Capacitor ana sürümü tam olarak bir targetSdkVersion değerini destekler; Capacitor 7 35 kullanır, Google Play ise 36 ister. Capacitor 8'e ve eklentilerine geçişi test başlamadan önce planla.

Paketi derlemek için Android Studio gerekli mi?

Hayır. npx cap build android anahtar deposu seçeneklerinle komut satırından imzalı bir .aab derler; bunu CI'da tekrarlamak daha kolaydır. İki durumda da önce web derlemesini ve npx cap sync android komutunu çalıştır.

Kaynaklar

Teknik ayrıntılar aşağıdaki resmi belgelerle kontrol edildi. Menüler ve varsayılanlar sürümden sürüme değişir; şüphede kalırsan resmi sayfa esastır.

12 test edici kuralında yeni misin?

Genel rehber Google'ın şartını, bir TestBunny kampanyasının gün gün nasıl ilerlediğini ve neyi garanti edip edemediğimizi anlatır.

Genel rehberi oku

14 gün için 12 gerçek test ediciye mi ihtiyacın var?

Uygulamanı ve kapalı test bağlantını ekle, Starter (15 test edici) ya da Pro (25 test edici) planını seç, her test edicinin etkinliğini panelinde gün gün izle.

TestBunny'nin Google ile bir bağlantısı yoktur. Test ediciler nakit değil, kredi kazanır. Google'ın üretim erişimi kararını kimse garanti edemez, biz de etmeyiz.