Bu kılavuzda, Android platformunun ve Google Play'in uygulama güncellemelerini nasıl işlediği açıklanmakta ve uygulamalarını birden fazla uygulama mağazasında yayınlayan geliştiricilere yönelik ç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ına benzeyen benzersiz bir uygulama kimliği vardır (ör. com.example.myapp
). Bu kimlik, cihazdaki her uygulamayı benzersiz şekilde tanımlar. Android cihazlarda aynı anda, belirli bir uygulama kimliği
yüklenmiş yalnızca bir uygulama 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ü uygulamayla aynı olmalıdır.
- Güncellemenin imzalama sertifikası, yüklü uygulamanın imzalama sertifikasıyla aynı olmalı veya geçerli bir rotasyon kanıtı içermelidir.
- Güncellemenin sürüm kodu, yüklü uygulamanın sürüm kodundan daha 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, uygulamayı güncelleyen farklı yükleyicilere karşı yerleşik bir koruma önlemi olmadığını unutmayın.
Yukarıdaki koşulları karşılamayan bir uygulamayı yüklemek için kullanıcının öncelikle o anda yüklü olan sürümü kaldırması gerekir. Bu durumda tüm uygulama verileri cihazdan silinir.
Google Play'in uygulamaları güncelleme şekli
Google Play'in uygulama güncelleme yaklaşımı aşağıdaki ilkelere dayanır:
- Kullanıcılara güncel bilgiler sağlayın. Kullanıcıları güvenlik sorunlarından korumak ve en son özellik iyileştirmelerinden yararlanmak için uygulamaları güncel tutmanız önerilir.
- Kullanıcının tercihine saygı gösterin. Google Play, kullanıcı hesaplarıyla ilişkili uygulamaları ve ölçülen verilerin kullanımına izin verme veya vermeme gibi seçtikleri güncelleme tercihlerine göre günceller.
- Geliştiricilerin seçimine saygı gösterin. Google Play, uygulama güncellemelerini belirlerken geliştiricilerin yapılandırma seçeneklerini kullanır.
- Kaynak israfını önleyin. Güncellemelerin indirileceği zamanı optimize ederek pil ömrünü koruyun, sıkıştırma ve yama uygulama gibi tekniklerle veri kullanımını en aza indirin.
Google Play, bir cihaza yüklenen belirli bir uygulama için aşağıdaki koşulları karşılıyorsa uygulamayı günceller:
- Uygulama, aynı uygulama kimliğiyle Google Play'de yayınlanmıştır.
- Yayınlanan uygulamanın imzalama sertifikası, yüklü olan 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ı veya bir OEM tarafından önceden yüklenmiştir.
- Geliştirici tarafından tanımlanan hedefleme seçeneklerine göre uygulama, bu kullanıcı ve bu cihaz için kullanılabilir.
- Yüklü uygulama, Google Play'deki sürüme kıyasla güncel değil.
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 uygulama içeriğini indirdiği veya geliştiriciler adına uygulama ikili programlarında bakım gerçekleştirdiği durumlar da olabilir (örneğin, kısmi indirme işlemlerini tamamlarken veya isteğe bağlı bölümleri indirirken).
Google Play'de yayınlanmış
Google Play, Google Play'de yayınlanan uygulamaları benzersiz ş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şirse bu koşul karşılanır.
Kullanıcı kitaplığının bir bölümü
Bu koşul, aşağıdakilerden biri doğruysa karşılanır:
- Cihazdaki herhangi bir etkin Google Hesabı, uygulamayı daha önce Google Play'deki yükle veya satın al düğmesine dokunarak edinmiştir.
- OEM, uygulamayı sistem görüntüsünün bir parçası olarak önceden yükledi.
Kullanıcılar ayrıca uygulamaları kitaplıklarından manuel olarak kaldırabilirler.
Güncel değil
Google Play, cihazda yüklü bir uygulamanın güncel olup olmadığını sürüm koduna bakarak belirler. Google Play'den indirilebilecek sürüm, yüklü sürümden daha yüksek bir sürüm koduna sahipse Google Play, yüklü uygulamayı eski olarak kabul eder.
Birden fazla uygulama mağazasındaki uygulamalar
Bir uygulamayı birden fazla uygulama mağazasında yayınlarken mağazalar arası güncellemeleri kontrol etmenin birkaç yolu vardır. Aşağıdaki bölümlerde bu seçenekler ve bunların olası avantajları ile dezavantajları ele alınmaktadır.
Mağazalar arası güncellemeleri önleyin
Her uygulama mağazasının, uygulamanız için mağazalar arası uygulama güncellemeleri gerçekleştirmesini engellemek isteyebilirsiniz. Uygulamanızın içeriği her uygulama mağazasında farklıysa bunu yapmayı tercih edebilirsiniz. Bu, uygulamayı iki farklı uygulama kimliğiyle yayınlayarak veya aynı uygulama kimliği ve iki farklı imzalama anahtarıyla yayınlayarak gerçekleştirilebilir.
Anahtar güvenliğinin ihlal edilmesi riskini azaltmak için imzalama anahtarınızın yeniden kullanımını en aza indirebilir ve her uygulama mağazası için farklı bir uygulama imzalama anahtarı kullanabilirsiniz. Aksi halde, mağazalar arası güncellemeler önlenir.
Android, hangi yaklaşımı seçerseniz seçin, eşleşen bir uygulama kimliği ve imzalama anahtarı olmayan uygulamaları uyumsuz olarak değerlendirir. Bir mağazadan diğerine geçmek isteyen bir kullanıcının yüklü uygulamayı silmesi, bu uygulamayla ilişkili tüm verileri silmesi ve diğer mağazadan yeniden yüklemesi gerekir.
Mağazalar arası güncellemelere izin ver
Her uygulama mağazasının, uygulamanız için mağazalar arası uygulama güncellemeleri gerçekleştirmesine 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 olmasına öncelik vermek istiyorsanız bunu yapmayı 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, her bir uygulama mağazası, kullanıcının uygulamayı ilk olarak nereden indirdiğinden bağımsız olarak uygulamanızın yüklemelerini güncelleyebilir.
Ancak bu durum, her bir uygulama mağazasının mağazalar arası uygulama güncellemelerini nasıl uyguladığına bağlı olarak kullanıcılarınız için öngörülemeyen davranışlara yol açabilir. Örneğin, bir kullanıcı bir mağazadaki güncellemeleri devre dışı bırakırken başka bir mağazanın güncelleme sağlamaya devam edebileceğini fark etmeyebilir.
Önceden mağazalar arası güncellemelere izin verdiyseniz ancak cihazda mevcut olan 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.