Android App Bundle ile ilgili sık sorulan sorular

Android App Bundle'lar hakkında

Android App Bundle (AAB) nedir?

2018'de kullanıma sunulan Android App Bundle (AAB), Google Play ve diğer uygulama mağazalarının yanı sıra Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity ve Unreal gibi derleme araçları tarafından desteklenen bir Android yayınlama biçimidir.

AAB'ler ile APK'lar arasındaki fark nedir?

App Bundle'lar yalnızca yayınlama içindir ve Android cihazlara yüklenemez. Android paketi (APK), Android'in uygulamalar için yüklenebilir ve yürütülebilir biçimidir. Uygulama paketlerinin cihazlara yüklenebilmesi için bir dağıtıcı tarafından APK'lara dönüştürülmesi gerekir.

AAB, yalnızca Google Play'de kullanılabilen tescilli bir biçim mi?

Hayır, AAB tescilli değildir. Uygulama paketi açık kaynaklı olduğundan herhangi bir uygulama mağazası tarafından desteklenebilir. Paketler, Google Play ve diğer bazı uygulama mağazaları tarafından desteklenir.

AAB oluşturmak, diğer uygulama mağazalarında yayınlamamı engeller mi?

Hayır, diğer uygulama mağazalarında yayınlamanız engellenmez. Uygulamanızı oluştururken her uygulama mağazası için hangi yayınlama biçiminin gerekli olduğuna bağlı olarak aynı anda AAB ve APK oluşturabilirsiniz.

AAB kullanmak için ne kadar çalışma gerekir?

Çoğu uygulama için AAB oluşturmak, APK oluşturmakla aynı çabayı gerektirir. Bunun nedeni, derleme sırasında APK yerine AAB'nin seçilmesidir. Bazı uygulamalarda, AAB'lerin tüm avantajlarından yararlanmak için bazı değişiklikler yapılması gerekebilir.

AAB'leri kullanan geliştiriciler var mı?

Evet. 1 milyondan fazla uygulama ve oyun, üretim sürümlerini Google Play'de yayınlamak için uygulama paketlerini kullanıyor. Bu uygulamalar arasında popüler uygulamaların çoğu yer alıyor ve bu uygulamalar milyarlarca aktif yükleme sayısını temsil ediyor. Uygulamaları yüklemek için Google Play'i kullanıyorsanız cihazınızdaki uygulamaların çoğu uygulama paketi olarak yayınlanmıştır.

AAB, kullanıcıların uygulamaları "başka cihazdan yüklemesini" engeller mi?

Hayır, AAB'ler kullanıcıların herhangi bir kaynaktan APK yüklemesini engellemez. AAB yalnızca bir yayınlama biçimi olduğundan Android platformunun çalışma şeklini değiştirmez.

Geliştirici, optimize edilmiş APK'lar sunmak için AAB'leri kullanıyorsa bu APK'ları paylaşan kullanıcıların sorun yaşaması mümkün müdür?

Uygulamanın APK'lar veya AAB'ler aracılığıyla yayınlanıp yayınlanmadığına bakılmaksızın, APK'ların doğrudan bir cihazdan diğerine aktarılamadığı nadir durumlar Android'de her zaman olmuştur. Özellikle, APK'lar bir cihaz için (ör. belirli bir çip mimarisi için) optimize edildiğinde bu APK'ların doğrudan başka bir cihaza aktarılması, hedef cihazın orijinal cihazın özellikleriyle eşleşmemesi durumunda sorunlara yol açabilir. Bu durumlarda, hedef cihaza uygun bir APK veya APK grubu yüklenmelidir.

Birden fazla uygulama mağazasında yayın yapabilir miyim?

Evet, AAB'leri kullanıp kullanmadığınıza bakılmaksızın birden fazla uygulama mağazasında yayınlayabilirsiniz. AAB'leri, AAB'leri desteklemeyen diğer uygulama mağazalarında veya web sitelerinde APK'leri yayınlarken aynı anda Google Play'de ve AAB'leri destekleyen diğer uygulama mağazalarında yayınlayabilirsiniz.

AAB şartı, Managed Google Play'de yayınlanan özel uygulamalar için geçerli mi?

Evet, Play Console'dan Managed Google Play'e yayınlanan özel uygulamalar için AAB yayınlanması gerekir.

APK yayınlama, Managed Play iFrame üzerinden desteklenmeye devam etmektedir.

Play Uygulama İmzalama hakkında

Play Uygulama İmzalama nedir?

Android'deki her APK'nın yüklenebilmesi için uygulama imzalama anahtarıyla kriptografik olarak imzalanması gerekir. Android platformu, ilk yükleme işleminden sonra her uygulama güncellemesinin aynı anahtar sahibinden gelmesi için anahtarı kullanarak tüm uygulama güncellemelerinin bir cihaza yüklenen uygulamayla eşleşmesini sağlar. Bu, kötü amaçlı uygulama güncellemeleri riskini azaltır. 2017'de kullanıma sunulan Play Uygulama İmzalama, Google Play'in Play geliştiricilerinin Play'de dağıtılan uygulamaları için uygulama imzalama anahtarlarını koruyan ve yöneten anahtar yönetim hizmetidir. Ayrıca Play Uygulama İmzalama, Play'in yüklenen AAB'lerden oluşturduğu APK'larda imzalama işlemini gerçekleştirir. Yeni uygulamaların AAB'leri kullanabilmesi için Play Uygulama İmzalama'yı kullanması gerekir.

Google, Play Uygulama İmzalama'yı neden kullanıma sundu?

Uygulama imzalama anahtarları, Play geliştiricileri için yıllardır zorluk teşkil ediyordu. Anahtarın kaybedilmesi, kullanıcılara uygulama güncellemeleri sunamamaya yol açar. Anahtarın güvenliğinin ihlal edilmesi ise kullanıcıları kötü amaçlı güncellemelerle ilgili risklere maruz bırakır. Dağıtım kanalları, bu riskleri azaltmak için dağıttıkları yazılımların anahtarlarını saklayıp yönetir. Bu, yazılım dağıtımında yaygın bir uygulamadır. Play Uygulama İmzalama, Play dağıtım anahtarlarını kaybetme riskini ortadan kaldırmak, anahtar güvenliğinin ihlal edilmesinin ardından Play kullanıcılarını korumayı mümkün kılmak ve geliştiricilere Google'ın devam eden güvenlik yatırımından yararlanma imkanı sunmak için 2017'de kullanıma sunuldu.

Google, Play Uygulama İmzalama'nın güvenliğini nasıl sağlar?

Google, geliştiricilerin anahtarlarını kendi anahtarlarını korumak için kullandığı sektör lideri, güvenli altyapıda korur. Anahtarlar, tüm işlemleri kapsayan kurcalamaya karşı korumalı denetim izleri ve sıkı EKL'ler ile kilitlenmiş, özel anahtar yönetimi sunucularında şifrelenmiş olarak depolanır. Google'ın bulut güvenliği işlemleri ve en iyi uygulamaları ayrıntılı olarak online açıklanmaktadır.

Play'in uygulamam için kullandığı uygulama imzalama anahtarını seçebilir miyim?

Evet, yeni bir uygulama oluşturduğunuzda Google'ın sizin adınıza bir uygulama imzalama anahtarı oluşturup saklamasını veya kendi uygulama imzalama anahtarınızı seçip bunun bir kopyasını yüklemeyi tercih edebilirsiniz.

Play ve diğer uygulama mağazaları için aynı uygulama imzalama anahtarını kullanmak istiyorum. Bu hâlâ mümkün mü?

Uygulama güncellemelerinin nasıl çalıştığını göz önünde bulundurduktan sonra birden fazla uygulama mağazasında aynı imzalama anahtarını kullanmaya karar verdiyseniz bu işlemi yine de yapabilirsiniz. Bu işlem, her uygulama mağazasının uygulamanız için mağazalar arası uygulama güncellemeleri yapmasına olanak tanır. İki seçeneğiniz vardır:

  • Anahtarı yerel olarak oluşturabilir ve bir kopyasını Play'e yükleyebilirsiniz. Bu sayede, uygulamanızı diğer uygulama mağazaları için oluştururken Google Play'in kullandığı anahtarı kullanabilirsiniz.
  • Play Uygulama İmzalama için Google tarafından oluşturulan bir anahtar kullanabilir, ardından Play Console'dan Google tarafından oluşturulan anahtarla imzalanmış dağıtım APK'larını indirip bu APK'ları diğer uygulama mağazalarında veya web sitelerinde dağıtım için kullanabilirsiniz.

Ağustos 2021'den önce oluşturulan bir uygulama için uygulama imzalama anahtarımın kopyasını sağlamadan Play Uygulama İmzalama'yı kullanabilir miyim?

Evet, Play Uygulama İmzalama, Ağustos 2021'den önce oluşturulan uygulamalar için "anahtar yükseltme" seçeneğini destekler. Bu sayede uygulama, yeni bir uygulama imzalama anahtarıyla Play Uygulama İmzalama'yı kullanmaya başlayabilir. Ancak bu seçeneği kullanmak için yükseltme işlemini gerçekleştirdikten sonra her sürümde iki öğe yüklemeniz gerekir: uygulama paketi ve eski uygulama imzalama anahtarınızla imzalanmış eski bir APK. Play, yeni yüklemeler ve bunların güncellemeleri için yeni sürüme geçirilmiş anahtarla imzalanmış APK'lar oluşturmak üzere AAB'lerinizi kullanır. Aynı zamanda Play, uygulamanızı zaten yüklemiş olan kullanıcılara yönelik uygulama güncellemeleri için eski APK'larınızı kullanır. Zaman içinde eski yüklemeler, yükseltilmiş anahtara taşınır (ör. kullanıcılar yeni bir mobil cihaza geçtiğinde).

Ağustos 2021'den önce ve sonra oluşturulan uygulamalar için aynı uygulama imzalama anahtarını kullanmanın bir yolu var mı?

Genellikle birden fazla uygulama için aynı uygulama imzalama anahtarının kullanılması önerilmez. Her uygulama için benzersiz bir anahtar kullanmak daha güvenlidir. Ancak birden fazla uygulama için aynı uygulama imzalama anahtarını kullanmanız gerekiyorsa bu mümkündür. Play Uygulama İmzalama'yı yapılandırırken mevcut uygulama imzalama anahtarının bir kopyasını yükleyebilirsiniz. Alternatif olarak, mevcut uygulama imzalama anahtarını paylaşmak istemiyorsanız Ağustos 2021'den önce yayınlanan uygulamanızda Play Uygulama İmzalama'yı kullanmaya başlamak için yakında kullanıma sunulacak olan "anahtar yükseltme" seçeneğini kullanabilirsiniz. Bu sayede, hem Ağustos 2021'den önce oluşturulan uygulamanız hem de Ağustos 2021'den sonra oluşturulan uygulamanız aynı yeni anahtarı kullanabilir.

Play Uygulama İmzalama'nın kullandığı uygulama imzalama anahtarını değiştirebilir miyim?

Evet, uygulamalar Play Console'da anahtar yükseltme isteğinde bulunarak anahtarlarını değiştirebilir.

Google Play'in kodumda beklenmedik değişiklikler yapmadığını nasıl kontrol edebilirim?

Google Play'deki ve Play Console'daki En son sürümler ve paketler bölümündeki yapıları istediğiniz zaman indirebilir ve inceleyebilirsiniz. Ayrıca Play Developer API, yakında APK'ları yayın kanalına göndermeden önce doğrulama olanağı sunacak. İsteğe bağlı olarak uygulama paketleri için kod şeffaflığı adlı bir özelliği de kullanabilirsiniz. Kod şeffaflığı sayesinde siz ve son kullanıcılarınız, Google Play gibi bir uygulama mağazasını sunduğu koddan sorumlu tutabilirsiniz.

Uygulama paketleri için kod şeffaflığı nasıl çalışır?

Kod şeffaflığı, uygulamanızı dağıtan uygulama mağazasının sunduğu koddan sorumlu tutulmasını sağlayan isteğe bağlı bir özelliktir. Kod şeffaflığını kullanmak için derleme sırasında uygulamanızda kodunuzu temsil eden bir kod şeffaflığı dosyası oluşturursunuz (özellikle uygulamanızın kodunun karma değerlerini içeren bir dosyadır). Yalnızca sizde bulunan kendi özel kod şeffaflığı anahtarınızla imzalarsınız. Kod şeffaflığı anahtarınızı Google'a hiçbir zaman vermeniz gerekmez. Ardından, bir cihazda yüklü bir APK'yı inceleyebilir ve imzaladığınız kod şeffaflığı dosyasının APK'nın koduyla eşleşmeye devam ettiğini doğrulayabilirsiniz. Bu sayede, dağıtım sırasında APK'nın kendisi yeniden imzalanmış olsa bile kod şeffaflığı tarafından doğrulanan kodun değiştirilmediğinden emin olabilirsiniz. Bir uyuşmazlık varsa bu, kodun dağıtım sırasında değiştirildiğinin kanıtıdır. Kod şeffaflığı, APK imzalarının yerini almaz ve Android platformunun bir parçası değildir.

Google Play'de büyük uygulamalar ve oyunlar yayınlama

AAB'ler kullanılırken Google Play uygulama boyutu sınırları nelerdir?

AAB'den oluşturulan bir temel modülün maksimum sıkıştırılmış indirme boyutu 200 MB'tır. Yani Google Play, önce temel modülü, ardından AAB'nizdeki ek özellik modüllerini veya öğe paketlerini oluşturur. Ardından Google Play, herhangi bir cihaza indirilen sıkıştırılmış dosyaların toplam boyutunun 4 GB'ı aşmadığını kontrol eder.

Google Play, AAB'ler için genişletme dosyalarını (OBB'ler) destekliyor mu?

Hayır, Google Play, AAB'ler için genişletme dosyalarını desteklemez. Genişletme dosyaları (OBB'ler), APK'leri kullanarak büyük uygulamaları ve oyunları yayınlamak için Google Play'e özel eski bir çözümdür. 200 MB'tan büyük AAB'ler için Google ve üçüncü taraf alternatifleri vardır.

Google Play'de 200 MB'tan büyük bir uygulamayı veya oyunu nasıl yayınlarım?

AAB'leri kullanan büyük uygulamalar ve oyunlar, 200 MB'lık boyut sınırını aşmak için Play Asset Delivery veya Play Feature Delivery gibi Play dağıtım hizmetlerini ya da üçüncü taraf içerik dağıtım ağlarını kullanabilir.

Play Asset Delivery, genişletme dosyalarına (OBB'ler) kıyasla hangi avantajları sunar?

Google Play'de, kullanıcılara ek kaynaklar sunmak için APK'ların ayrı genişletme dosyaları (OBB'ler) gerekiyordu. Ancak OBB'ler imzalanmadığı ve uygulamanın harici depolama alanında saklandığı için çok güvenli değildir. Play Asset Delivery (PAD) ile 200 MB'tan büyük oyunlar, oyunun tamamını Play Store'da tek bir uygulama paketi olarak yayınlayarak OBB'lerin yerini alabilir. PAD, daha sorunsuz bir yayınlama süreci ve esnek yayınlama modları sunmanın yanı sıra güncellemeler için daha az cihaz depolama alanı gerektirir. Bu nedenle, daha yüksek yükleme oranları elde edilebilir. Son olarak, ASTC artık cihazların yaklaşık %80'inde desteklendiğinden PAD'nin doku sıkıştırma biçimi hedefleme özelliği, ASTC'yi destekleyen cihazlara ASTC sunmanıza olanak tanır. Mevcut donanım ve cihaz depolama alanını verimli bir şekilde kullanırken en geniş cihaz aralığını hedefleyebilirsiniz.

AAB'ler tarafından etkinleştirilen Google Play dağıtım özellikleri

Play'in AAB kullanan geliştiricilere sunduğu yeni özelliklere örnekler nelerdir?

Google Play gibi uygulama mağazaları, AAB'leri yüklenebilir APK'lara dönüştürür. APK'lardan sorumlu olmak, geliştiricilere ve kullanıcılara fayda sağlayan yeni özellikler ve hizmetler sunmayı mümkün kılar. Play, geliştiriciler tarafından yaygın olarak kullanılan ve değer verilen bu tür hizmetleri zaten sunmaktadır. Play Feature Delivery ve Play Asset Delivery bu hizmetlere iki örnektir.

Play Feature Delivery nedir?

Uygulama paketlerinin özelliklerinden biri, uygulamaların "özellik modülleri" adı verilen birden fazla modüle ayrılmasına olanak tanımasıdır. Bu modüller daha sonra farklı zamanlarda kullanıcılara ve cihazlara dinamik olarak sunulabilir (geçmişte her şeyin yükleme sırasında tek bir dosya olarak sunulması gerekiyordu). Play Feature Delivery, yükleme sırasında, koşullu ve isteğe bağlı yayınlama modlarıyla hangi özellik modüllerinin hangi cihaza ne zaman yayınlanacağını özelleştirmenize olanak tanır. Bu sayede uygulama boyutunuzu küçülterek daha fazla yükleme elde edebilir ve uygulama deneyiminizi özelleştirebilirsiniz. Örneğin, müşteri desteği gibi nadiren kullanılan bir özelliği yükleme sırasında değil, ihtiyaç duyan kullanıcılara isteğe bağlı olarak sunabilirsiniz. Böylece, tüm kullanıcılar için ilk yüklemenizin boyutu küçülür. Alternatif olarak, veri ve cihaz depolama alanı kısıtlamaları olan giriş seviyesi cihazlara isteğe bağlı özellikler içeren daha küçük bir uygulama deneyimi sunarken üst düzey cihazlara uygulamanızın tüm özelliklerini sunabilirsiniz.

Play Asset Delivery nedir?

Play Asset Delivery, oyun geliştiricilerin büyük öğeleri en uygun zamanda dinamik olarak sunarak kullanıcı deneyimini iyileştirmesine ve kullanıcı bekleme süresini kısaltmasına olanak tanır. Play Asset Delivery'yi kullanan oyunlar, doku sıkıştırma biçimi hedeflemeyi de kullanabilir. Böylece kullanıcılarınız, cihazlarına uygun olan öğeleri alır ve boş alan ya da bant genişliği israfı olmaz.

Bu Play dağıtım özellikleri diğer uygulama mağazalarında kullanılabilir mi?

Hayır, Play Özellik Dağıtımı ve Play Asset Delivery, doğrudan Google Play Store ile arayüz oluşturan uygulamaları ve oyunları içerir. Bu isteğe bağlı hizmetler, Play'in uygulama mağazası olarak kendini farklılaştırmasına ve Play geliştiricileri ile kullanıcılarına ek değer ve fayda sağlamasına yönelik örneklerdir. Uygulama paketlerini ve APK'ları kullanan diğer uygulama mağazaları, geliştiricilere kendi uygulama mağazası hizmetlerini sunar.