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), Android için bir yayınlama biçimidir. Google Play ve diğer uygulama mağazaları ile Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity ve Unreal gibi derleme araçları tarafından desteklenir.

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

Uygulama paketleri yalnızca yayınlanmak 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 paketleri, cihazlara yüklenebilmeleri için bir distribütör tarafından APK'lara dönüştürülmelidir.

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

Hayır, AAB özel değildir. Uygulama paketi açık kaynaklı olduğundan tüm uygulama mağazaları tarafından desteklenir. Paketler, Google Play ve bazı diğer uygulama mağazaları tarafından desteklenir.

AAB oluşturmak, diğer uygulama mağazalarında yayınlamama engel olur mu?

Hayır, diğer uygulama mağazalarında yayınlamanız engellenmez. Uygulamanızı oluştururken her uygulama mağazası için gereken yayınlama biçimine bağlı olarak aynı anda AAB'ler ve APK'lar oluşturabilirsiniz.

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

Çoğu uygulama için AAB oluşturmak, APK oluşturmayla aynı çabayı gerektirir. Bunun nedeni, oluşturma sırasında APK yerine AAB'yi seçmek yeterlidir. Bazı uygulamalarda, AAB'lerin avantajlarından tam olarak yararlanmak için bazı değişiklikler yapılması gerekebilir.

AAB'leri kullanan geliştiriciler var mı?

Evet. 1 milyondan fazla uygulama ve oyun, milyarlarca etkin yüklemeyi temsil eden popüler uygulamaların çoğu da dahil olmak üzere üretim sürümlerini Google Play'de yayınlamak için uygulama paketlerini kullanıyor. Uygulama 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üklemelerini" 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 işleyiş şeklini değiştirmez.

Bir geliştirici, optimize edilmiş APK'lar yayınlamak için AAB'leri kullanıyorsa bu, bu APK'ları paylaşan kullanıcıların sorunla karşılaşabileceği anlamına mı gelir?

Uygulamanın APK veya AAB aracılığıyla yayınlanmış olması fark etmeksizin, Android'de APK'ların doğrudan bir cihazdan diğerine aktarılamadığı durumlar her zaman olmuştur. Özellikle, APK'lar bir cihaz için optimize edildiğinde (ör. belirli bir çip mimarisi için) bu APK'ların doğrudan başka bir cihaza aktarılması, hedef cihaz orijinal cihazın özellikleriyle eşleşmezse sorunlarla karşılaşabilir. Bu durumlarda, hedef cihaza uygun bir APK veya APK grubu yüklenmelidir.

Uygulamamı birden fazla uygulama mağazasında yayınlayabilir miyim?

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

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

Hayır. Managed Google Play'de yayınlanan özel uygulamalar APK veya AAB ile yayınlanabilir. Yeni bir özel uygulama oluştururken Uygulama imzalama anahtarını değiştir'i seçebilir ve kendi kendine imzalanmış, özel bir APK yayınlamak istiyorsanız Play Uygulama İmzalama'yı devre dışı bırakabilirsiniz.

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, uygulama güncellemelerinin cihazdaki yüklü uygulamayla eşleştiğinden emin olmak için anahtarı kullanır. Böylece, ilk yükleme yapıldıktan sonra her uygulama güncellemesi aynı anahtar sahibinden gelir. Bu, kötü amaçlı uygulama güncellemeleri riskini azaltır. 2017'de kullanıma sunulan Play Uygulama İmzalama, Play'de dağıtılan uygulamalarına ait uygulama imzalama anahtarlarını koruyan ve yöneten Google Play 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 gereklidir.

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

Uygulama imzalama anahtarları, Play geliştiricileri için yıllardır sorun teşkil ediyordu. Anahtarı kaybetmek, kullanıcılara uygulama güncellemeleri gönderemeyeceğiniz anlamına gelir. Anahtar güvenliğinin ihlal edilmesi ise kullanıcıları kötü amaçlı güncellemelerin riskine sokar. Yazılım dağıtımında, dağıtım kanallarının dağıttıkları yazılımların anahtarlarını depolaması ve yönetmesi yaygın bir durumdur. Bu, söz konusu riskleri azaltır. Play Uygulama İmzalama, Play dağıtım anahtarlarını kaybetme riskini ortadan kaldırmak, anahtar güvenliği ihlali sonrasında Play kullanıcılarını korumayı mümkün kılmak ve geliştiricilere Google'ın devam eden güvenlik yatırımlarından yararlanma olanağı sunmak için 2017'de kullanıma sunulmuştur.

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

Google, geliştirici anahtarlarını Google'ın kendi anahtarlarını korumak için kullandığı sektör lideri güvenli altyapıda korur. Anahtarlar, kilitli, özel anahtar yönetimi sunucularında şifrelenmiş olarak depolanır. Bu sunucularda katı ACL'ler ve tüm işlemleri kapsayan, değiştirilemez denetim günlükleri bulunur. Google'ın bulut güvenliği operasyonları ve en iyi uygulamaları hakkında ayrıntılı bilgi edinin.

Play'in uygulamam için kullanacağı 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ı seçebilir veya kendi uygulama imzalama anahtarınızı seçip bir kopyasını yükleyebilirsiniz.

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 işleyiş şeklini göz önünde bulundurduktan sonra birden fazla uygulama mağazasında aynı imzalama anahtarını kullanmaya karar verdiyseniz bunu yapmaya devam edebilirsiniz. Bu durumda, her uygulama mağazasının uygulamanız için mağazalar arası uygulama güncellemeleri yapabileceğini unutmayın. İki seçeneğiniz vardır:

  • Yerel olarak bir anahtar oluşturabilir ve kopyasını Play'e yükleyebilirsiniz. Böylece, uygulamanızı diğer uygulama mağazaları için derlediğinizde Google Play tarafından kullanılan 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 imzalanan dağıtım APK'larını indirebilir ve bu APK'ları diğer uygulama mağazalarında veya web sitelerinde dağıtmak için kullanabilirsiniz.

Ağustos 2021'den önce oluşturulmuş bir uygulama için uygulama imzalama anahtarımın bir 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 yeni sürüme geçtikten sonra her sürüme iki öğe yüklemeniz gerekir: bir 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, uygulamanızı zaten yüklemiş olan kullanıcılara yönelik uygulama güncellemeleri için eski APK'larınızı kullanır. Eski yüklemeler zaman içinde yeni sürüme geçirilen anahtara taşınır (ör. kullanıcılar yeni bir mobil cihaza geçtiğinde).

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

Genellikle birden fazla uygulamada aynı uygulama imzalama anahtarının kullanılması önerilmez. Her uygulama için benzersiz bir anahtar kullanmak daha güvenlidir. Ancak birden fazla uygulamada aynı uygulama imzalama anahtarını kullanmanız gerekiyorsa bunu yapabilirsiniz. Alternatif olarak, Play Uygulama İmzalama'yı yapılandırırken mevcut uygulama imzalama anahtarının bir kopyasını yükleyebilirsiniz. Mevcut uygulama imzalama anahtarını paylaşmak istemiyorsanız Play Uygulama İmzalama'yı kullanmaya başlamak için Ağustos 2021'den önce yayınlanan uygulamanız için yakında kullanıma sunulacak "anahtar yükseltme" seçeneğini kullanabilirsiniz. Böylece, hem Ağustos 2021'den önceki uygulamanız hem de Ağustos 2021'den sonraki uygulamanız aynı yeni anahtarı kullanabilir.

Play Uygulama İmzalama tarafından kullanılan 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 yapıp yapmadığını nasıl kontrol edebilirim?

İstediğiniz zaman Google Play'den ve Play Console'daki En son sürümler ve paketler bölümünden yapıları indirip inceleyebilirsiniz. Ayrıca Play Developer API, yakında APK'ları bir sürüm kanalına göndermeden önce doğrulama olanağı sunacak. Ayrıca uygulama paketleri için kod şeffaflığı adlı isteğe bağlı bir özelliği de kullanabilirsiniz. Kod şeffaflığı sayesinde siz ve son kullanıcılarınız, Google Play gibi bir uygulama mağazasında sunulan kodun hesabını tutabilirsiniz.

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

Kod şeffaflığı, uygulamanızı dağıtan bir uygulama mağazasının dağıttığı 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 oluşturma işlemlerini içeren bir dosyadır). Bu dosyayı yalnızca size ait olan özel kod şeffaflık anahtarınızla imzalarsınız. Kod şeffaflığı anahtarınızı Google'a hiçbir zaman sağlamanız gerekmez. Ardından, bir cihazda yüklü APK'yı inceleyebilir ve imzaladığınız kod şeffaflığı dosyasının APK'nın koduyla hâlâ eşleştiğini doğrulayabilirsiniz. Bu sayede, APK dağıtım sırasında yeniden imzalansa bile kod şeffaflığıyla doğrulanan kodun değiştirilmediğinden emin olabilirsiniz. Eşleşme yoksa kodun dağıtım sırasında değiştirildiği anlaşılı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'inizdeki ek özellik modüllerini veya öğe paketlerini oluşturur. Ardından Google Play, herhangi bir cihazın aldığı maksimum kümülatif toplam sıkıştırılmış indirme boyutunun 4 GB'ı aşmadığını kontrol eder.

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

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

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

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

Play Asset Delivery, genişletme dosyalarına (OBB'ler) kıyasla ne gibi avantajlar sunuyor?

Google Play'de APK'ların kullanıcılara ek kaynaklar sunması için ayrı genişletme dosyaları (OBB'ler) gerekliydi. Ancak OBB'ler imzalanmadığı ve uygulamanın harici deposunda 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'leri kullanabilir. PAD, daha sorunsuz bir yayınlama süreci ve esnek yayınlama modları sunmanın yanı sıra güncellemelerin daha az cihaz depolama alanı gerektirmesini sağlar. Sonuç olarak, daha yüksek yükleme oranları elde edebilirsiniz. Son olarak, ASTC artık cihazların yaklaşık %80'inde desteklendiğinden PAD'in doku sıkıştırma biçimi hedefleme özelliği, ASTC'yi destekleyen cihazlara ASTC yayınlamanıza olanak tanır. Mevcut donanımı ve cihaz depolama alanını verimli bir şekilde kullanırken en geniş cihaz yelpazesini hedefleyebilirsiniz.

AAB'ler tarafından kullanıma sunulan Google Play yayınlama özellikleri

Play'in AAB kullanan geliştiricilere sunduğu yeni özelliklerden örnekler verebilir misiniz?

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ğlayacak 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 Özellik Dağıtımı ve Play Asset Delivery bu hizmetlere örnek olarak verilebilir.

Play Feature Delivery nedir?

Uygulama paketlerinin özelliklerinden biri, bir uygulamayı "özellik modülleri" adı verilen birden fazla modüle ayırmanıza olanak tanımasıdır. Bu modüller daha sonra kullanıcılara ve cihazlara farklı zamanlarda dinamik olarak sunulabilir (eskiden her şeyin yükleme sırasında tek bir dosya olarak sunulması gerekirdi). 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 uygulamanızın boyutunu küçültebilir, 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 sunarak tüm kullanıcılar için ilk yüklemenizin boyutunu azaltabilirsiniz. Dilerseniz üst düzey cihazlara tam uygulama deneyiminizi sunarken veri ve cihaz depolama alanı kısıtlamaları olan giriş seviyesi cihazlara isteğe bağlı, isteğe bağlı özellikler içeren daha küçük bir uygulama deneyimi 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ıların bekleme süresini azaltmasına olanak tanır. Play Asset Delivery'i kullanan oyunlar, doku sıkıştırma biçimi hedefleme özelliğinden de yararlanabilir. Böylece kullanıcılarınız, alan veya bant genişliği israf etmeden yalnızca cihazlarına uygun öğeleri alır.

Bu Play yayınlama ö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 kendisini bir uygulama mağazası olarak farklılaştırmasına ve Play geliştiricileri ile kullanıcılarına ek değer ve kullanışlılık sağlamasına örnektir. Uygulama paketlerini ve APK'ları kullanan diğer uygulama mağazaları, geliştiricilere kendi uygulama mağazası hizmetlerini sunar.