Android Signing Nedir?
Android, her uygulamanın dijital olarak imzalanmasını zorunlu kılar. İmza, uygulamanın kimden geldiğini doğrular ve güncelleme bütünlüğünü sağlar. İmzasız APK/AAB dosyaları cihazlara yüklenemez.
Keystore Nedir?
Özel anahtarlarınızı (private key) saklayan şifrelenmiş dosya (.jks veya .keystore). Uygulamanızı imzalamak için bu dosyaya ve şifresine ihtiyaç duyarsınız.
Anahtar Türleri
Upload Key
- Sizde kalan anahtar
- Binary'yi Google Play'e yüklerken kullanılır
- Kaybolursa yenisi oluşturulabilir (Google'dan talep ile)
- Geliştirici tarafında güvenli saklanmalı
Signing Key
- Uygulamayı son kullanıcıya imzalayan asıl anahtar
- Google Play App Signing kullanıyorsanız Google'da saklanır
- Kullanmıyorsanız sizde kalır (kaybetme ASLA)
- Bu anahtar değiştirilemez
Google Play App Signing (Önerilen)
Google'ın signing key'i güvenli şekilde sakladığı sistem:
- Upload key ile yükle, Google signing key ile imzalar
- Upload key kaybolursa sıfırlanabilir
- Signing key Google'da güvende
- Yeni uygulamalar için zorunlu
- Anahtar rotasyonu desteği (API 33+)
Keystore Oluşturma
Komut satırı ile:
- keytool komutu ile .jks dosyası oluştur
- Alias, şifre, geçerlilik süresi belirle
- 25+ yıl geçerlilik önerilir
- Aynı keystore içinde birden fazla alias olabilir
Güvenlik Kuralları
- Keystore dosyasını GIT'e KOYMA (.gitignore'a ekle)
- Keystore şifresini güvenli sakla (1Password, Vault, CI/CD secrets)
- Yedek al ve güvenli yerde tut (en az 2 kopya)
- CI/CD'de environment variable olarak kullan
- Signing key kaybolursa uygulama GÜNCELLENEMEz (yeni listing gerekir)
- Team üyeleri ile keystore paylaşımında şifreli aktarım kullan
Debug vs Release
- Debug keystore: Android Studio otomatik oluşturur, sadece test için
- Release keystore: Store'a yüklemek için, kendin oluşturursun
- Debug imzalı APK/AAB store'a yüklenemez
- Debug ve release keystore'un SHA fingerprint'leri farklıdır
EAS Build ile Signing
Expo kullanıyorsan:
- EAS credentials ile keystore yönetimi otomatik
- Google Play App Signing otomatik kurulum
- Keystore EAS sunucularında şifreli saklanır
- Credentials yedekleme ve paylaşım kolay
SHA Fingerprint
- SHA-1 ve SHA-256 fingerprint'ler uygulamanın kimliğini doğrular
- Google Sign-In, Firebase, Maps API için gerekir
- Debug ve release keystore'un farklı fingerprint'leri var
- Play Console'dan app signing key'in SHA'sını al
- Firebase Console'a doğru SHA'yı eklemeyi unutma
2026 İtibariyle Güncel Durum
- Google Play App Signing tüm yeni uygulamalar için zorunlu
- Key rotation desteği Android 13+ cihazlarda mevcut
- EAS Build ve Fastlane ile signing otomasyonu yaygınlaştı
- CI/CD pipeline'larında keystore yönetimi standart uygulama haline geldi
Keystore kaybı = uygulamayı güncelleyememe. En az 2 yerde yedek tut ve şifreleri güvenli sakla.