Android'de release keystore oluşturma ve kullanma

Kerem Aydın·7 Temmuz 2026·⏱3 dk

Kısa cevap: keytool komutuyla bir release-keystore oluşturun, alias belirtin, geçerlilik süresini >= 25 yıl olarak ayarlayın, .jks dosyasını kaydedin ve signingConfig içinde bağlayın — yalnızca bu şekilde uygulamanız Google Play tarafından kabul edilir. Aşağıda pratik bir adım adım kılavuz ve güvenlik önerileri yer almaktadır.

Keystore neden gereklidir ve nelere dikkat edilmeli

Keystore, APK/AAB dosyalarınızı dijital olarak imzaladığınız özel anahtarı içeren bir dosyadır (.jks/.keystore). Google Play, sahipliğinizi ve güncellemelerinizi doğrulamak için release anahtarının imzasını zorunlu kılar. Önemli noktalar:

  • Anahtarı bir kez oluşturun ve yedeklerini saklayın. Anahtar kaybı, uygulama güncellemelerini zorlaştırır veya imkânsız hale getirir.
  • RSA 2048+ kullanın, geçerlilik süresi en az 25 yıl olsun (yaklaşık 10000+ gün önerilir).
  • Release için debug-keystore kullanmayın.

Keystore veya parolayı kaybederseniz, güncellemeler sorunlu hale gelir — Google Play App Signing üzerinden karmaşık bir geçiş süreci gerekir.

Adım adım: Keystore nasıl oluşturulur

  1. JDK 11+ kurulu olduğundan emin olun (keytool JDK ile birlikte gelir). Kontrol edin: keytool -version.
  2. Terminali açın ve aşağıdaki komutu çalıştırın (parametreleri kendinize göre değiştirin):
keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
  1. Keystore için güçlü bir parola ve (isteğe bağlı olarak) anahtar için ayrı bir parola girin. Ad/organizasyon alanlarını ve iki harfli ülke kodunu doldurun.
  2. Oluşturulan dosyayı kontrol edin:
keytool -list -v -keystore ~/my-release-key.jks

Öneriler:

  • .jks dosyasını depodan uzakta tutun veya .gitignore'a ekleyin.
  • En az 2–3 şifreli yedek oluşturun ve parolaları bir parola yöneticisinde saklayın.

Ekip çalışması için Google Play App Signing'i kullanın: Ana anahtarı Google'a teslim edersiniz ve yükleme için upload key kullanırsınız — bu, kayıp riskini azaltır.

Android Studio entegrasyonu ve derleme

  1. my-release-key.jks dosyasını projede güvenli bir konuma taşıyın (örneğin app/ dizinine).
  2. Projenin kök dizininde keystore.properties oluşturun ve .gitignore'a ekleyin:
storePassword=Parolanız
keyPassword=Parolanız
keyAlias=my-key-alias
storeFile=app/my-release-key.jks
  1. Kök build.gradle'da (veya Kotlin betiğinde) özellikleri yükleyin:
val keystoreProps = java.util.Properties().apply {
  load(java.io.FileInputStream(rootProject.file("keystore.properties")))
}
  1. app modülünde signingConfigs ekleyin ve release ile ilişkilendirin:
signingConfigs {
  create("release") {
    storeFile = file(keystoreProps["storeFile"] as String)
    storePassword = keystoreProps["storePassword"] as String
    keyAlias = keystoreProps["keyAlias"] as String
    keyPassword = keystoreProps["keyPassword"] as String
  }
}
buildTypes {
  release {
    signingConfig = signingConfigs.getByName("release")
    isMinifyEnabled = true
    proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
  }
}
  1. Build > Generate Signed Bundle/APK yoluyla veya CI için Gradle görevi aracılığıyla imzalamayı gerçekleştirin: gizli anahtarları (GitHub Actions Secrets) kullanın ve .jks dosyasını güvenli bir yapıt olarak yükleyin.

Sık yapılan hatalar

  • Keystore was tampered with, or password was incorrect — yanlış parola. Geri alınamaz; yeni bir anahtar oluşturmanız ve geçiş sürecini tamamlamanız gerekir.
  • Anahtarın süresi dolmuş — validity değerini >= 9125 (25 yıl) veya 10000+ gün olarak ayarlayın.
  • Güncelleme sırasında anahtar uyumsuzluğu — alias ve keystore'un önceki dosya ile eşleştiğinden emin olun: keytool -list -v -keystore old.jks
  • Linux/Mac üzerinde erişim izinleri: chmod 600 my-release-key.jks

Keystore'u şifreli bir depoda (Bitwarden/1Password) yedekleyin ve kopyalarını harici depolama birimlerinde saklayın.

SSS

  • .jks dosyasını depoda saklamak mümkün mü? — Hayır. Dosyayı genel deponun dışında tutun ve .gitignore'a ekleyin.
  • Keystore'u kaybedersem ne yapmalıyım? — Google Play desteğiyle iletişime geçin: Yalnızca App Signing üzerinden sınırlı bir geçiş mümkündür, ancak süreç onaylar ve upload key gerektirir.
  • App Bundle kullanıyorsam kendi anahtarıma ihtiyacım var mı? — Evet: AAB ile bile bir release anahtarınız olmalıdır (veya anahtarı App Signing'de saklaması için Google'a güveniyorsunuz).

Artık keystore oluşturabilir, signingConfig'i yapılandırabilir ve Google Play'e yüklemek için imzalı AAB/APK derleyebilirsiniz.