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 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, açık test kanalında veya üretim kanalında bir sürüm yayınlanmadan önce bu varsayılanı değiştirebilir. Bunu yapmak için Google Play ile korunanlar > Google Play Store dağıtımı > Google Play Uygulama İmzalama'ya git bölümüne gidip Uygulama imzalama anahtarını değiştir'i tıklayın. 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 dağıtımı > 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çirin
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 17 (API düzeyi 37) 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 17 (API düzeyi 37) ve sonraki sürümler: Android platformu, yeni sürüme geçirilen kuantuma hazır karma anahtarınızın kullanımını kesin bir şekilde zorunlu kılar. APK imza şeması v3.2'ye bakın.
- Android 13 (API düzeyi 33) ile Android 16 (API düzeyi 36) arasındaki sürümler: Android platformu, en son klasik anahtarınızın kullanımını kesin bir şekilde zorunlu kılar. APK imza şeması v3.1'e bakın.
- Android 7 (API düzeyi 24) ile Android 12 (API düzeyi 32) arasındaki sürümler: Android platformu, yeni sürüme geçirilen anahtarı zorunlu kılmaz ve en son klasik anahtarı tanımaya devam eder. Bununla birlikte Google Play Protect, uygulama güncellemelerinin en son klasik 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.
- Yeni anahtar parmak izlerinizi API sağlayıcılarınıza kaydedin. Uygulamanız kuantuma hazır karma imzalama kullanıyorsa iki yeni anahtarın parmak izlerini kaydetmeniz gerekir: yeni klasik anahtarınız ve yeni PQC anahtarınız.
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.
- Uygulama paketi geliştirmeleri: Google Play Uygulama İmzalama'ya kaydolduğunuzda uygulama paketleriniz için geliştirmelere erişebilirsiniz. Geliştirmeleri uygulamak için öncelikle yeni bir sürüm oluştururken gerekli yapılandırma değişikliklerini yapın ve ardından yeni bir uygulama paketi 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 *.apk ile 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.
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.
- Google Play'in olağanüstü durum kurtarma gibi temel özellikleri gerçekleştirmesini engeller.
- Google, mevcut bir sürümü yeniden üretemez veya düzeltemez. Sürümle ilgili hataları düzeltmek için yeni bir sürüm yüklemeniz gerekir.
- Gelişmiş optimizasyonlar, belirli Google Play geliştirmeleri ve kuantuma hazır karma imzalama gibi güvenlik özellikleri bu yapılandırmada kullanılamayabilir.
- İmzalama anahtarlarınızı Cloud KMS'de oluşturun veya içe aktarın. Konumun çok bölgeli ABD olarak yapılandırıldığından emin olun ve KMS anahtarı içe aktarma belgelerini inceleyin.
- İmzalama anahtarınızı değiştirmek için enrollApp yöntemini kullanın. İmzalama anahtarları yalnızca uygulama açık test veya üretim kanallarında yayınlanmadan önce değiştirilebilir.
- Yayınladıktan sonra imzalama anahtarınızı yeni sürüme geçirmek için rotateAppSigningKey yöntemini kullanın.
- Google Play Developer API ile kimlik doğrulayan istemciye veya hizmet hesabına aşağıdaki IAM rollerini verin:
- Kriptografi işlemlerini gerçekleştirmek için yeterli kotanız olduğundan emin olun. Özellikle asymmetric_requests kotasını en az 350 QPS'e çıkarmanızı öneririz.
- İmzalama anahtarlarının nasıl kullanıldığını görmek için Cloud KMS projenizde denetleme günlüğünü etkinleştirin.