Mobil uygulama geliştiricilerinin Google Play üzerinde uygulama yayınlama süreçlerinde karşılaştıkları en önemli değişimlerden biri, APK dosyalarının yerini Android App Bundle (AAB) formatının almasıdır. Google Play, 2021 itibariyle yeni uygulamaların yalnızca AAB formatında yüklenmesini zorunlu hale getirmiştir. Bu durum, uygulama geliştiricileri için hem yeni fırsatlar hem de yeni sorumluluklar doğurmuştur.
Bu yazıda, App Bundle nedir, nasıl hazırlanır, avantajları nelerdir, karşılaşılan yaygın hatalar ve çözüm yolları, güvenlik önlemleri, imzalama işlemleri, test süreçleri ve yayınlama öncesi kontrol listeleri gibi konular detaylı olarak ele alınacaktır.
1. App Bundle (AAB) Nedir?
1.1 Tanımı
Android App Bundle (AAB), Android uygulamalarını daha esnek, optimize ve modüler bir şekilde paketlemeye yarayan yeni bir dağıtım formatıdır. APK’nın yerini almıştır ancak direkt kullanıcıya değil, Google Play’e yüklenir.
Google Play, bu AAB dosyasını kullanarak her kullanıcı cihazına özel, minimum boyutlu APK’yı otomatik olarak üretir. Bu mekanizmaya “Dynamic Delivery” adı verilir.
1.2 App Bundle ile APK Arasındaki Farklar
Özellik | APK | AAB |
---|---|---|
Boyut | Tek bir büyük dosya | Kullanıcıya özel daha küçük dosyalar |
Dağıtım | Manuel ya da mağaza | Sadece mağaza (Google Play) |
İmzalama | Lokal | Google tarafından yapılabilir |
Test | Direkt cihazda | APK’lara dönüştürülerek test edilir |
2. App Bundle’ın Avantajları
-
Daha Küçük Uygulama Boyutu: Kullanıcının cihazına sadece ihtiyaç duyduğu kaynaklar ve kodlar yüklenir.
-
Performans Artışı: Daha az yüklemenin getirdiği daha hızlı açılış süreleri.
-
Daha Az Yükleme Sorunu: Tek bir APK yerine modüler yapıda kurulum.
-
Sade Geliştirme Süreci: Özellikle çoklu cihaz destekleyen uygulamalarda asset ve kod yönetimi kolaylaşır.
-
Play Feature Delivery ile Özelleştirme: Uygulamanın bazı modüllerini sadece istenildiğinde indirtme imkanı.
3. Android App Bundle Hazırlama Aşamaları
App Bundle dosyasını hazırlamak için Android Studio’nun güncel bir sürümüne sahip olmanız gerekir. Adımlar şu şekildedir:
3.1 Proje Temizliği
-
Build > Clean Project
-
Build > Rebuild Project
3.2 Signing Config (İmza Ayarları)
Uygulamanızın imzalanması, App Bundle’ın geçerli sayılması için zorunludur.
-
build.gradle
(Module: app) dosyasına:
3.3 App Bundle Oluşturma
-
Android Studio’da:
Build > Build Bundle(s) / APK(s) > Build Bundle(s)
-
Oluşturulan dosya:
app/build/outputs/bundle/release/app-release.aab
4. App Bundle Hazırlarken Yapılan Yaygın Hatalar
4.1 İmza Hataları
Yanlış veya eksik signing config kullanımı sonucu App Bundle geçersiz sayılabilir.
4.2 Google Play Console Uyum Sorunları
Bundle yüklendiğinde “Missing required property” gibi uyarılar alınabilir. Bunun nedeni genellikle manifest
veya build.gradle
dosyalarının eksik bilgiler içermesidir.
4.3 Dynamic Features Entegrasyon Hataları
Eğer uygulamanız dinamik özellik modülleri kullanıyorsa, baseModuleName
ayarları ve bağımlılıklar doğru şekilde tanımlanmalıdır.
5. App Bundle Test Süreci
App Bundle dosyaları doğrudan cihazlarda çalıştırılamaz. Test etmek için şu yöntemler kullanılır:
5.1 Google Play Internal Testing
-
Play Console’da dahili test ortamı açılır
-
App Bundle yüklenir
-
Yalnızca davet edilen kullanıcılar erişebilir
5.2 Bundletool Kullanımı
Google tarafından sunulan Bundletool aracı ile AAB dosyasından test APK’ları üretilebilir.
6. Google Play Console’a Yükleme Aşamaları
-
Google Play Console’a giriş yapın.
-
Yeni sürüm oluştur > Üretim > Yeni sürüm yayınla
-
app-release.aab
dosyasını yükleyin. -
Uygulama açıklamalarını, sürüm notlarını ve test cihazları bilgilerini girin.
-
Yayınla butonuna tıklayın.
7. İleri Seviye Özellikler: Dynamic Delivery
App Bundle sayesinde şu özellikler sunulur:
7.1 Language Splits
Uygulama yalnızca cihazın sistem diline uygun çevirileri indirir.
7.2 ABI Splits
Cihaza uygun CPU mimarisi için derlenmiş kodlar yüklenir (armeabi-v7a, arm64-v8a, x86).
7.3 Screen Density Splits
Cihaza uygun ekran yoğunluğu için optimize görseller yüklenir (hdpi, xhdpi, xxhdpi…).
7.4 On-Demand Modules
Bazı bölümler yalnızca ihtiyaç duyulduğunda Play Store üzerinden indirilir.
8. Güvenlik ve İmza Süreci
Google, uygulamanızı kendi anahtarınızla imzalamanız yerine, Google Play App Signing ile kendi güvenli sisteminde imzalayabilir. Avantajları:
-
İmzalama anahtarının çalınma riskine karşı koruma
-
Anahtar yönetim kolaylığı
-
Gelecekteki uygulama güncellemeleriyle uyumluluk
9. App Bundle Performans ve Boyut Optimizasyonları
9.1 ProGuard ve R8 Kullanımı
Kodun küçültülmesi ve kullanılmayan kodun çıkarılması, bundle boyutunu ciddi oranda azaltır.
9.2 Resource Shrinking
Kullanılmayan kaynakların otomatik silinmesi.
9.3 Asset Management
Ağır görsel ve medya dosyaları için res/raw
yerine dış kaynak kullanımı önerilir.
10. App Bundle Yayınlama Öncesi Kontrol Listesi
✅ Uygulama Projesi Temizlendi mi?
✅ build.gradle
dosyasında signing config tanımlı mı?
✅ App Bundle başarıyla üretildi mi?
✅ Bundletool ile test edildi mi?
✅ Play Console test yayını yapıldı mı?
✅ Google Play App Signing aktif mi?
✅ Dynamic Delivery yapılandırmaları tamamlandı mı?
11. App Bundle Geçiş Sürecinde Yayınlanmış APK’lar Ne Olur?
Google Play yalnızca yeni uygulamaları AAB formatında kabul etmektedir. Halihazırda yayınlanmış APK’lara sahip uygulamalar varlıklarını sürdürebilir; ancak yeni sürümler mutlaka AAB olarak sunulmalıdır.
12. App Bundle için Alternatif Yayınlama Yöntemleri
-
Huawei AppGallery: APK kullanımı sürmektedir.
-
Amazon Appstore: APK kabul eder.
-
Samsung Galaxy Store: Kendi SDK’sı ile APK yüklenebilir.
Google Play dışı dağıtım yapacaksanız, App Bundle yerine APK üretimi sürdürülebilir.
Sonuç: App Bundle Geleceğin Yayınlama Formatıdır
Mobil uygulama yayınlama süreçlerinde App Bundle artık kaçınılmaz bir gereklilik haline gelmiştir. Bu yapıyı doğru anlayan ve uygulayan geliştiriciler:
-
Daha güvenli
-
Daha hızlı
-
Daha az hata içeren
-
Daha düşük boyutlu
uygulamalarla Google Play’deki başarı şanslarını artırmaktadırlar.