Google Play Uygulama İmzalama'yı neden kullanmalısınız? Google Play Uygulama İmzalama'ya kaydolduğunuzda anahtarlarınızı kalıcı kayıp veya güvenlik ihlaline karşı korumanın yanı sıra Android App Bundle'larınız (.aab) için geliştirmelere erişebilirsiniz. Uygulama paketlerinizden oluşturulan optimize edilmiş dağıtım APK'larının Google tarafından imzalanmasına izin verdiğinizde Gemini modellerini kullanarak otomatik koruma ve otomatik dize çevirisi gibi değerli hizmetlere erişebilirsiniz. Oyunlar, Google Play Games Sidekick, indirirken oynama ve ücretli oyunlar için ücretsiz denemeler gibi ek otomatik hizmetlere erişebilir.
Google Play Uygulama İmzalama'yı yapılandırmak için hesap sahibi olmanız veya Üretim sürümüne yayınlama, cihazları hariç tutma ve Google Play Uygulama İmzalama'yı kullanma iznine sahip olmanız ve Hizmet Şartları'nı kabul etmeniz gerekir.
Temel kavramlar
Google Play Uygulama İmzalama'yı kullandığınızda iki farklı anahtarla çalışırsınız. Bu anahtarların farkını ve teknik biçimlerini anlamak, üçüncü taraf API'leriyle ilgili kimlik doğrulama sorunlarını önlemek için çok önemlidir.
| Anahtar türü | Sahibi | Teknik ayrıntılar ve amaç |
|
Yükleme anahtarı |
Siz (Bu anahtarın güvenliğini sağlayın) |
|
| Uygulama imzalama anahtarı |
Google Play |
|
| Kuantuma hazır | Google Play |
|
Not: En üst düzeyde güvenlik için yükleme anahtarınız ve uygulama imzalama anahtarınız farklı olmalıdır.
Google uygulamanızı nasıl imzalar? Google, uygulama imzalama anahtarıyla APK'larınızı oluşturup imzalarken uygulamanızın manifest dosyasına iki damga (com.android.stamp.source ve com.android.stamp.type) eklemek için apksigner aracını kullanır. Bu damgalar, APK'larınızın orijinal imzalayan kişiye kadar güvenli bir şekilde izlenebilmesini sağlar.
Google Play Uygulama İmzalama'yı kurma
Kurulum işlemi, yeni bir uygulama yayınlamanıza veya mevcut bir uygulamayı taşımanıza bağlı olarak değişir.
Yeni uygulamalar için
- Yeni bir uygulama oluşturma: Uygulamanız, Google tarafından oluşturulan anahtarlarla kuantuma hazır hibrit imzalama sürecine otomatik olarak kaydedilir. Ayrıca, Android 16 ve önceki sürümleri çalıştıran cihazlarda tanınan imza bloklarında kullanılmak üzere ayrı bir klasik anahtar oluştururuz.
- Yükleme anahtarı oluşturma: Sürüm uygulama paketinizi imzalamak için bir anahtar deposu oluşturun. Bunu Android Studio'da oluşturabilir veya komut satırındaki Java keytool yardımcı programını kullanabilirsiniz.
- Uygulama paketinizi yükleme: Google Play Console'a gidip yeni bir sürüm hazırlayın. Varsayılan olarak, uygulama paketinizi yüklediğinizde uygulamanız Google tarafından oluşturulan anahtarlarla kuantuma hazır hibrit imzalama sürecine otomatik olarak kaydedilir.
- Uygulama imzalama anahtarınızı değiştirme (isteğe bağlı): Kendi anahtarını yönetmek isteyen ileri düzey geliştiriciler bu varsayılanı değiştirebilir. Bunu, sürümünüzün Uygulama bütünlüğü bölümünde İmzalama anahtarını değiştir'i tıklayarak veya Google Play ile korunanlar > Google Play Store koruması > Google Play Uygulama İmzalama'yı yönetin bölümüne giderek yapabilirsiniz. Ardından şunları yapabilirsiniz:
- Bu geliştirici hesabındaki başka bir uygulamayla aynı anahtarı kullan
- Talimatları uygulayarak
uygulama imzalama anahtarınızın bir kopyasını sağlayın.
Mevcut uygulamalar için
Şu anda kendi anahtarlarınızı yönetiyor ve APK'lar yüklüyorsanız uygulama paketlerinden ve Google Play geliştirmelerinden yararlanmak için Google Play Uygulama İmzalama'ya yükseltebilirsiniz.
- Google Play Console'da Google Play ile korunanlar > Google Play Store koruması > Google Play Uygulama İmzalama'ya git bölümüne gidin.
- Henüz yapmadıysanız Hizmet Şartları'nı kabul edin.
- Orijinal anahtarınızın bir kopyasını aktarın: Mevcut uygulama imzalama anahtarınızı herhangi bir depodan şifreleyip yüklemek için PEPK aracını indirin ve birleştirilmiş adım adım talimatları uygulayın.
API sağlayıcılarına kaydetme
Uygulamanız API'ler (ör. Google Haritalar, OAuth veya Facebook ile giriş) kullanıyorsa bu hizmetler, uygulama imzalama anahtarınızın parmak izini kullanarak uygulamanızın kimliğini doğrular.
Google, nihai APK'yı imzaladığından yalnızca yerel yükleme anahtarınızı değil, Google tarafından saklanan uygulama imzalama anahtarı parmak izini de API sağlayıcılarınıza kaydetmeniz gerekir.
- Google Play ile korunanlar > Google Play Store dağıtımı > Google Play Uygulama İmzalama'ya git bölümüne gidin.
- Uygulama imzalama anahtarı bölümüne gidin.
- Gerekli parmak izlerini (SHA-1 veya SHA-256) kopyalayın. Uygulamanız kuantuma hazır karma imzalama kullanıyorsa üç anahtarın parmak izlerini kopyalamanız ve her birini API sağlayıcılarınıza kaydetmeniz gerekir: Daha yeni cihazlarda kullanılan yeni klasik ve PQC anahtarlarınız ile daha eski cihazlarda kullanılan klasik anahtarınız.
- Bu parmak izlerini API sağlayıcınızın konsoluna (ör. Google Cloud Console) yapıştırın.
İpucu: Android App Links kullanıyorsanız assetlinks.json dosyanızı bu parmak izleriyle güncelleyin.
Anahtarlarınızı yönetme
Uygulama imzalama anahtarınızı yeni sürüme geçirme
Uygulama imzalama anahtarınızın güvenliği ihlal edilmişse veya şifreleme açısından daha güçlü bir anahtara ihtiyacınız varsa Android N (API düzeyi 24) ve üzeri sürümlerdeki tüm yüklemeler için yıllık anahtarı yeni sürüme geçirme isteğinde bulunabilirsiniz.
Yaptırım Android sürümlerinde nasıl çalışır?
- Android T (API düzeyi 33) ve sonraki sürümler: Android platformu, yeni sürüme geçirilmiş anahtarınızın kullanımını kesin bir şekilde zorunlu kılar.
- Android N (API düzeyi 24) ile Android S (API düzeyi 32) arasındaki sürümler: Android platformu, yeni sürüme geçirilen anahtarı zorunlu kılmaz ve eski imzalama anahtarını tanımaya devam eder. Bununla birlikte Google Play Protect, uygulama güncellemelerinin yeni sürüme geçirilmiş anahtarınızla imzalanıp imzalanmadığını kontrol ederek ek doğrulama sağlar (kullanıcı tarafından devre dışı bırakılmadığı sürece).
Dikkat edilmesi gereken önemli nokta:
- Paylaşılan veriler: Platform, Android S (API düzeyi 32) ve önceki sürümlerde yeni sürüme geçirilen anahtarı zorunlu kılmadığı için veri paylaşırken birden fazla uygulamada aynı anahtarı kullanırsanız bu eski Android sürümleri, özel izin paylaşımı gibi özellikler için yalnızca eski anahtarı tanır.
Nasıl yükseltilir?
- Google Play ile korunanlar > Google Play Store dağıtımı > Google Play Uygulama İmzalama'ya git bölümüne gidin.
- Uygulama imzalama anahtarı bölümünde Anahtarı yeni sürüme geçir'i tıklayın.
- Yeni sürüme geçirme yolunuzu seçin:
- Google Play'in yeni bir uygulama imzalama anahtarı oluşturmasına izin verin (önerilir).
- Bu geliştirici hesabında başka uygulama ile aynı uygulama imzalama anahtarını kullanın.
- Talimatları uygulayarak uygulama imzalama anahtarınızın bir kopyasını sağlayın.
- Kaydet'i tıklayın ve yeni anahtar parmak izlerinizi, API sağlayıcılarınıza kaydedin.
Yükleme anahtarı sıfırlama isteğinde bulunma
Yükleme anahtarınızı kaybederseniz veya güvenliğinin ihlal edildiğinden şüphelenirseniz uygulama erişiminiz engellenmez.
- Android Studio'da yeni bir yükleme anahtarı oluşturun.
- Sertifikayı PEM biçiminde dışa aktarın:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(keytool ve keystore yollarıyla ilgili daha fazla yardım için Android Studio uygulama imzalama kılavuzuna bakın). - PEM dosyanız oluşturulduktan sonra Google Play Console'da sıfırlama isteğini gönderin.
- Google Play ile korunanlar > Google Play Store koruması > Google Play Uygulama İmzalama'yı yönet'e gidin.
- Yükleme Anahtarı Sertifikası Yükle bölümünde Yükleme anahtarının sıfırlanmasını iste'yi tıklayın.
- Sıfırlama nedenini girin.
upload_certificate.pemdosyanızı yükleyin ve İste'yi tıklayın.
En iyi uygulamalar ve alternatif dağıtım
- Güvenlik: Tüm kullanıcılar için 2 Adımlı Doğrulama'yı zorunlu kılarak Google Play Console erişiminizi koruyun.
- Google Play geliştirmeleri: Google Play Uygulama İmzalama'ya kaydolduğunuzda uygulama paketleriniz için Google Play geliştirmelerine erişebilirsiniz. Güncellemeleri almak için öncelikle yeni bir sürüm oluştururken gerekli değişiklikleri yapın ve ardından yeni uygulama paketini yükleyin.
- Google Play dışında dağıtım: Diğer uygulama mağazaları üzerinden dağıtım yapıyorsanız ve her yerde aynı imzalama anahtarını kullanmak istiyorsanız iki seçeneğiniz vardır. [1] Google'ın uygulama imzalama anahtarınızı oluşturmasına izin verebilir ve başka yerlerde dağıtmak için Google Play Console'dan veya Google Play Developer API'den imzalı, evrensel bir APK indirebilir (Google Play Console'da Test ve sürüm > En son sürümler ve paketler'e gidin, uygulama paketinizi seçin ve İndirilenler sekmesini tıklayın) ya da [2] tüm uygulama mağazalarında kullanmak istediğiniz uygulama imzalama anahtarını oluşturabilir ve Google Play Uygulama İmzalama'yı yapılandırırken bu anahtarın bir kopyasını Google'a aktarabilirsiniz. Uygulama güncellemelerinin işleyiş şekli ve mağazalar arası güncellemeleri etkinleştirme veya devre dışı bırakma seçenekleriniz hakkında daha fazla bilgi edinin.
- Test: Google Play'in kullanıcılara tam olarak ne sunacağını test etmek için dahili uygulama paylaşımını kullanın veya uygulama paketi gezgininden cihaza özel APK'ları indirip adb install-multiple *
.apkile yerel olarak yükleyin. - APK İmza Şeması v4: Google Play Uygulama İmzalama, Android 11 ve sonraki sürümlerde optimize edilmiş dağıtımı desteklemek için uygun uygulamalarda otomatik olarak v4 imzalama özelliğini kullanır. Herhangi bir şey yapmanız gerekmemektedir. Bu, henüz v4 imzalamayla uyumlu olmayan, kuantuma hazır karma imzalama kullanan uygulamaları kapsamaz. Teknik avantajlar hakkında daha fazla bilgiyi APK İmza Şeması v4 belgelerinde bulabilirsiniz.
- Kendi bünyesinde barındırılan Google Cloud projeleri: Çok özel güvenlik şartlarınız varsa (ör. OEM anahtarları kullanma) Google Play Developer API'yi kullanarak kendi bünyesinde barındırılan bir Google Cloud projesiyle Google Play Uygulama İmzalama'ya kaydolabilirsiniz. Not: Bu, standart dışı bir kurulumdur ve önerilmez. Kendi bünyesinde barındırılan bir proje kullanmak, uygulama imzalama işlemlerinin tüm sorumluluğunu üstlendiğiniz anlamına gelir ve Google Play'in olağanüstü durum kurtarma gibi temel özellikleri gerçekleştirmesini engeller.