Bu rehberde, Android platformunun ve Google Play'in uygulama güncellemelerini nasıl ele aldığı açıklanmakta ve uygulamalarını birden fazla uygulama mağazasında yayınlayan geliştiriciler için çeşitli seçenekler ele alınmaktadır.
Android, uygulama güncellemelerini nasıl işler?
Her Android uygulamasının, Java veya Kotlin paket adı gibi görünen benzersiz bir uygulama kimliği vardır (ör. com.example.myapp
). Bu kimlik, cihazdaki her uygulamayı benzersiz şekilde tanımlar. Android cihazlarda, belirli bir uygulama kimliğine sahip yalnızca bir uygulama yüklü olabilir.
Bir güncellemenin Android platformu tarafından kabul edilmesi için aşağıdaki koşulların karşılanması gerekir:
- Güncellemenin uygulama kimliği, yüklü uygulamanın kimliğiyle aynı olmalıdır.
- Güncellemenin imzalama sertifikası, yüklü uygulamanın imzalama sertifikasıyla aynı olmalı veya geçerli bir anahtar döndürme kanıtı içermelidir.
- Güncellemenin sürüm kodu, yüklü uygulamanın sürüm kodundan yüksek veya ona eşit olmalıdır.
- Bazı durumlarda kullanıcının güncellemeyi kabul etmesi gerekebilir.
Güncellemeler aynı imzalama sertifikasına ve aynı veya daha yüksek sürüm koduna sahip olduğunda farklı yükleyicilerin bir uygulamayı güncellemesini engelleyen yerleşik bir önleme mekanizması olmadığını unutmayın.
Yukarıdaki koşulları karşılamayan bir uygulamayı yüklemek için kullanıcının önce mevcut yüklü sürümü kaldırması gerekir. Bu işlem, cihazdaki tüm uygulama verilerini siler.
Google Play uygulamaları nasıl günceller?
Google Play'in uygulamaları güncelleme yaklaşımı aşağıdaki ilkelere dayanır:
- Kullanıcıları güncel tutun. Kullanıcıların güvenlik sorunlarından korunması ve en son özellik iyileştirmelerinden yararlanması için uygulamaların güncel tutulması önerilir.
- Kullanıcı tercihlerine uyun. Google Play, kullanıcıların hesaplarıyla ilişkili uygulamaları ve seçtikleri güncelleme tercihlerine (ör. ücretli verilerin kullanımına izin verme veya vermeme) göre günceller.
- Geliştiricilerin tercihlerine saygı gösterin. Google Play, uygulama güncellemelerini belirlerken geliştiricilerin yapılandırma seçeneklerini kullanır.
- Kaynak israfından kaçının. Güncellemelerin ne zaman indirileceğini optimize ederek pil ömrünü koruyun ve sıkıştırma ile yama gibi teknikleri kullanarak veri kullanımını en aza indirin.
Google Play, bir cihaza yüklenen belirli bir uygulamayı aşağıdaki koşulları karşılıyorsa günceller:
- Uygulama, aynı uygulama kimliğiyle Google Play'de yayınlanmış olmalıdır.
- Yayınlanan uygulamanın imzalama sertifikası, şu anda yüklü sürümün imzalama sertifikasıyla eşleşiyor veya geçerli bir rotasyon kanıtı içeriyor.
- Uygulama, kullanıcının kitaplığının bir parçasıdır veya bir OEM tarafından önceden yüklenmiştir.
- Uygulama, geliştirici tarafından tanımlanan hedefleme seçeneklerine göre bu kullanıcı ve bu cihaz için kullanılabilir.
- Yüklü uygulama, Google Play'de bulunan sürüme kıyasla eski bir sürüm.
Bu koşullar karşılandığı sürece Google Play, uygulamayı güncelleyebilir. Aşağıdaki alt bölümlerde, listelenen koşullardan bazıları hakkında ayrıntılı bilgi verilmektedir.
Google Play'in, Android sürüm kodunu değiştirmeden geliştiriciler adına uygulama içeriği indirdiği veya uygulama ikililerinde bakım yaptığı başka zamanlar da olduğunu unutmayın. Örneğin, kısmi indirmeleri tamamlarken veya isteğe bağlı bölmeleri indirirken.
Google Play'de yayınlanmış
Google Play, Google Play'de yayınlanan uygulamaları benzersiz bir şekilde tanımlamak için uygulama kimliğini kullanır. Yüklü uygulamanın uygulama kimliği, Google Play'de yayınlanan bir uygulamanın uygulama kimliğiyle eşleşiyorsa bu koşul karşılanır.
Kullanıcının kitaplığının bir parçası
Aşağıdaki durumlardan biri geçerliyse bu koşul karşılanır:
- Cihazdaki etkin bir Google Hesabı, daha önce Google Play'de yükle veya satın al düğmesine dokunarak uygulamayı edinmiş olmalıdır.
- OEM, uygulamayı sistem görüntüsünün bir parçası olarak önceden yüklemiştir.
Kullanıcılar, uygulamaları kitaplıklarından manuel olarak da kaldırabilir.
Güncel değil
Google Play, bir cihaza yüklenen uygulamanın güncel olup olmadığını sürüm koduna bakarak belirler. Google Play'de indirilebilen sürümün sürüm kodu, yüklenen sürümün sürüm kodundan yüksekse Google Play, yüklenen uygulamayı güncel değil olarak kabul eder.
Birden fazla uygulama mağazasındaki uygulamalar
Bir uygulamayı birden fazla uygulama mağazasında yayınladığınızda mağazalar arası güncellemeleri kontrol etmenin birkaç yolu vardır. Aşağıdaki bölümlerde bu seçenekler ile olası avantajları ve dezavantajları ele alınmaktadır.
Mağazalar arası güncellemeleri engelleme
Her uygulama mağazasının uygulamanız için mağazalar arası uygulama güncellemeleri yapmasını önlemek isteyebilirsiniz. Uygulamanızın içeriği her uygulama mağazasında farklıysa bu seçeneği tercih edebilirsiniz. Bu, uygulamayı iki farklı uygulama kimliğiyle veya aynı uygulama kimliği ve iki farklı imzalama anahtarıyla yayınlayarak yapılabilir.
Anahtarın güvenliğinin ihlal edilmesinden kaynaklanan riski azaltmak için imzalama anahtarınızın yeniden kullanımını en aza indirmek isteyebilirsiniz. Bu nedenle, her uygulama mağazası için farklı bir uygulama imzalama anahtarı kullanabilirsiniz. Bu durumda mağazalar arası güncellemeler engellenir.
Hangi yaklaşımı seçerseniz seçin, Android eşleşen uygulama kimliği ve imzalama anahtarı olmayan uygulamaları uyumsuz olarak değerlendirir. Bir mağazadan diğerine geçmek isteyen kullanıcıların, yüklü uygulamayı silmesi gerekir. Bu işlem, uygulamayla ilişkili tüm verileri siler. Ardından, uygulamayı diğer mağazadan yeniden yükleyebilirler.
Mağazalar arası güncellemelere izin ver
Her uygulama mağazasının uygulamanız için mağazalar arası uygulama güncellemeleri yapmasına izin vermek isteyebilirsiniz. Uygulamanızı tüm uygulama mağazalarında aynı içerikle dağıtıyorsanız ve kullanıcıların güncel kalmasına öncelik vermek istiyorsanız bu seçeneği tercih edebilirsiniz. Uygulamanızı yayınladığınız tüm uygulama mağazalarında aynı uygulama kimliğini ve imzalama anahtarlarını kullandığınız sürece, kullanıcıların uygulamayı ilk olarak nereden indirdiğine bakılmaksızın her uygulama mağazası, uygulamanızın yüklemelerini güncelleyebilir.
Ancak bu durum, her uygulama mağazasının mağazalar arası uygulama güncellemelerini nasıl uygulayacağına bağlı olarak kullanıcılarınız için öngörülemeyen davranışlara yol açabilir. Örneğin, bir kullanıcı başka bir mağazanın güncelleme sağlamaya devam edebileceğini fark etmeden bir mağazadan gelen güncellemeleri devre dışı bırakabilir.
Daha önce mağazalar arası güncellemelere izin verdiyseniz ancak cihazda mevcut olduğunda belirli bir güncelleme kaynağını tercih etmeye başlamak istiyorsanız uygulamanızı tercih ettiğiniz uygulama mağazasında daha yüksek bir sürüm koduyla yayınlayabilir ve diğer uygulama mağazalarında daha düşük sürüm kodlarıyla yayınlamaya devam edebilirsiniz. Tercih edilen kaynaktan daha yüksek sürüm kodu güncellemesi yüklendikten sonra diğer uygulama mağazaları bu cihazda çapraz güncelleme yapamaz.