Google Play'den uygulama imzalamayı kullanma

Google Play'den uygulama imzalamayı kullandığınızda, Google, uygulamanızın imzalama anahtarını sizin için yönetir ve korur, ayrıca imzalama anahtarını kullanarak APK'larınızı dağıtım için imzalar. Bu yöntem, uygulama imzalama anahtarınızı saklamanın güvenli bir yoludur ve anahtarınızın kaybolması ya da güvenliğinin ihlal edilmesi halinde sizi korur.

Önemli: Önerilen uygulama yayınlama biçimi olan Android App Bundle'ı kullanmak için uygulama paketinizi Play Console'a yüklemeden önce Google Play'den uygulama imzalamaya kaydolmanız gerekir.

Kaydolmak için hesap sahibi veya genel "Üretim sürümlerini yönet" izinlerine sahip bir kullanıcı olmanız ve Hizmet Şartları'nı kabul etmeniz gerekir. Google Play'den uygulama imzalamaya uygulamaları teker teker kaydedebilirsiniz.

İşleyiş şekli

Google Play'den uygulama imzalamayı kullandığınızda, anahtarlarınız Google'ın kendi anahtarlarını depolamak için kullandığı altyapıda saklanır. Anahtarlar Google’ın Anahtar Yönetim Hizmeti tarafından korunur. Google’ın teknik altyapısı hakkında bilgi edinmek istiyorsanız Google Cloud Güvenlik Raporları'nı okuyabilirsiniz.

Android uygulamaları özel bir anahtarla imzalanır. Uygulama güncellemelerinin güvenilir olduğundan emin olmak için her özel anahtarın ilişkili bir genel sertifikası vardır. Cihazlar ve hizmetler, uygulamanın güvenilir bir kaynağa ait olduğunu doğrulamak için bu genel sertifikayı kullanır. Cihazların güncellemeyi kabul etmesi için güncellemenin imzasının, yüklü uygulamanın imzasıyla eşleşmesi gerekir. Uygulama imzalama anahtarınızın yönetimini Google'a bırakmak, bu süreci daha güvenli hale getirir.

Not: Google Play'den uygulama imzalama özelliğinin kullanımı isteğe bağlıdır. İsterseniz uygulama paketi kullanmak yerine APK yükleyip kendi anahtarlarınızı kendiniz yönetebilirsiniz. Ancak anahtar deponuzu kaybederseniz veya anahtar deponuzun güvenliği ihlal edilirse, yeni paket adıyla yeni bir uygulama yayınlamadan uygulamanızı güncelleyemezsiniz.

Anahtarlar, yapılar ve araçlarla ilgili açıklamalar
Dönem Açıklama
Uygulama imzalama anahtarı

Bir kullanıcının cihazına gönderilen APK'ları imzalamak için Google Play tarafından kullanılan anahtardır. Google Play'den uygulama imzalamaya kaydolduğunuzda mevcut bir uygulama imzalama anahtarını yükleyebilir ya da Google Play'in sizin için bir anahtar oluşturmasını sağlayabilirsiniz.

Uygulama imzalama anahtarı, uygulamanızın kullanım ömrü boyunca hiçbir zaman değiştirilemez. Uygulama imzalama anahtarınızı gizli tutmanız gerekir, ancak uygulamanızın genel sertifikasını başkalarıyla paylaşabilirsiniz.

Yükleme anahtarı

Uygulama paketinizi veya APK'nızı Google Play'e yüklemeden önce imzalamak için kullandığınız anahtardır. Yükleme anahtarınızı gizli tutmanız gerekir, ancak uygulamanızın genel sertifikasını başkalarıyla paylaşabilirsiniz. Güvenlik nedeniyle, uygulama imzalama anahtarıyla yükleme anahtarının birbirinden farklı olmasını sağlamanızı tavsiye ederiz.

Yükleme anahtarı oluşturmanın iki yolu vardır:

  • Uygulama imzalama anahtarınızı kullanma: Uygulama imzalamaya kaydolurken Google'ın uygulama imzalama anahtarı oluşturmasını seçerseniz, ilk sürümünüz için kullandığınız anahtar aynı zamanda yükleme anahtarınız olur.
  • Ayrı bir yükleme anahtarı kullanma: Uygulama imzalamaya kaydolurken kendi uygulama imzalama anahtarınızı sağlarsanız, yeni bir yükleme anahtarı oluşturma seçeneğine sahip olursunuz. Bu, sizin için daha yüksek güvenlik sağlar. Yeni bir yükleme anahtarı oluşturmazsanız, sürümleri imzalarken yükleme anahtarınız olarak uygulama imzalama anahtarınızı kullanırsınız.
Sertifika (.der veya .pem)

Sertifika, anahtarın sahibiyle ilgili bazı ekstra tanımlama bilgilerinin yanı sıra bir genel anahtar içerir. Genel anahtar sertifikası, herhangi bir kişinin, uygulama paketini veya APK'yı kimin imzaladığını doğrulamasını sağlar. Bu sertifika özel anahtarınızı içermediğinden başkalarıyla paylaşılmasında sakınca yoktur.

Anahtarlarınızı API sağlayıcılara kaydetmek isterseniz, uygulama imzalama anahtarınızın ve yükleme anahtarınızın genel sertifikasını Play Console'daki Uygulama imzalama sayfasından indirebilirsiniz. Genel anahtar sertifikası herkesle paylaşılabilir. Özel anahtarınızı içermez.

Sertifika dijital parmak izi

API sağlayıcıların, hizmetlerini kullanmak isteyen bir uygulamayı kaydetmek için genellikle paket adı ile birlikte talep ettiği, bir sertifikanın kısa ve benzersiz temsilidir.

Yükleme ve uygulama imzalama sertifikalarının MD5, SHA-1 ve SHA-256 parmak izlerini Play Console'un Uygulama imzalama sayfasında bulabilirsiniz. Aynı sayfada orijinal sertifikayı (.der) indirerek diğer parmak izlerini de hesaplayabilirsiniz.

Java anahtar deposu (.jks veya .keystore) Güvenlik sertifikalarının ve özel anahtarların depolandığı bir veri havuzudur.
Play Şifreleme Özel Anahtarı (PEPK) aracı

Özel anahtarları Java anahtar deposundan dışa aktarmak ve Google Play'e iletmek üzere şifrelemek için kullanılan bir araçtır.

Google'ın kullanacağı uygulama imzalama anahtarını sağlarken, anahtarınızı (ve gerekiyorsa genel sertifikasını) dışa aktarıp yükleme seçeneğini belirleyin ve ilgili talimatları uygulayarak aracı indirip kullanın. İsterseniz PEPK aracının açık kaynak kodunu indirebilir, inceleyebilir ve kullanabilirsiniz.

Uygulama imzalama işlemi

Orijinal uygulama imzalama anahtarıyla imzalanmış APK'ları, Google Play'den uygulama imzalamaya kaydolma işleminden önce veya sonra yükleyebilirsiniz.

Android App Bundle'ları kullanmaya başlıyorsanız, mevcut APK'nızı üretimde kullanırken App Bundle'ları test kanallarında test edebilirsiniz. İşlem şöyle gerçekleşir:

  1. Uygulama paketinizi veya APK'nızı imzalayın ve Play Console'a yükleyin.
  2. Ne yüklediğinize bağlı olarak imzalama işlemi şu şekilde değişiklik gösterir:
    • Uygulama paketi: Google, uygulama paketinizden optimize edilmiş APK'lar oluşturur ve bunları uygulama imzalama anahtarıyla imzalar.
    • Yükleme anahtarıyla imzalanmış APK: Google, imzanızı doğrular ve APK'dan kaldırır, ardından APK'yı uygulama imzalama anahtarıyla yeniden imzalar.
    • Uygulama imzalama anahtarıyla imzalanmış APK: Google imzayı doğrular.
  3. Google, kullanıcılara imzalanmış APK'lar teslim eder.

Google Play'den uygulama imzalamaya kaydolma

Yeni uygulamalar

1. Adım: Yükleme anahtarı oluşturun

  1. Talimatları uygulayarak bir yükleme anahtarı oluşturun.
  2. Yeni APK'nızı yükleme anahtarıyla imzalayın.

2. Adım: Sürümünüzü hazırlayın

  1. Sürümünüzü hazırlama ve kullanıma sunma ile ilgili talimatları uygulayın.
  2. Bir sürüm kanalı seçtikten sonra, "Google'ın uygulama imzalama anahtarınızı yönetmesine ve korumasına izin verme" bölümünün altından uygulama imzalamayı yapılandırın.
  3. Oluşturulan anahtarın, gelecekte sürümleri imzalarken kullanacağınız yükleme anahtarınız olmasını istiyorsanız Devam'ı seçin. Alternatif olarak Gelişmiş seçenekler'i tercih edebilirsiniz. Gelişmiş seçenekler şunları içerir:
    • Geliştirici hesabınızdaki başka bir uygulama ile aynı anahtarı kullanma (2. Seçenek).
    • Mevcut bir uygulama imzalama anahtarını yükleme (2., 3. ve 4. Seçenek): Kendiniz için en uygun dışa aktarma ve yükleme seçeneğini tercih edin. Uygulama imzalama anahtarınızı ve genel sertifikasını yükledikten sonra yükleme anahtarı oluşturabilir veya uygulama imzalama anahtarını yükleme anahtarınız olarak kullanmaya devam edebilirsiniz.

Not: Devam etmek için Hizmet Şartları'nı kabul etmeniz ve uygulama imzalamaya kaydolmanız gerekir.

3. Adım: Uygulama imzalama anahtarınızı API sağlayıcılara kaydedin

Uygulamanız herhangi bir API kullanıyorsa genellikle, kimlik doğrulama amacıyla Google'ın uygulamanızı imzalarken kullandığı anahtarın sertifikasını, sertifikanın dijital parmak izini kullanarak kaydetmeniz gerekir. Aşağıda, sertifikayı nerede bulacağınız açıklanmaktadır:

  1. Play Console hesabınızda oturum açın.
  2. Bir uygulama seçin.
  3. Soldaki menüde Sürüm yönetimi > Uygulama imzalama'yı seçin.
  4. Uygulama imzalama sertifikanızın dijital parmak izlerini (MD5, SHA-1 ve SHA-256) kopyalayın.
    • API sağlayıcının farklı türde bir dijital parmak izi gerektirmesi halinde orijinal sertifikayı .der biçiminde indirebilir ve API sağlayıcının gerektirdiği dönüştürme araçlarını kullanarak dönüştürebilirsiniz.
Mevcut uygulamalar

1. Adım: Google Play'den uygulama imzalamaya kaydolun

  1. Play Console hesabınızda oturum açın.
  2. Bir uygulama seçin.
  3. Soldaki menüde Sürüm yönetimi > Uygulama imzalama'yı seçin.
  4. Henüz yapmadıysanız Hizmet Şartları'nı inceleyin ve Kabul et'i seçin.

2. Adım: Orijinal anahtarınızı Google'a gönderin ve bir yükleme anahtarı oluşturun

  1. Orijinal uygulama imzalama anahtarınızı bulun.
  2. Play Console hesabınızda oturum açın.
  3. Bir uygulama seçin.
  4. Soldaki menüde Sürüm yönetimi > Uygulama imzalama'yı seçin.
  5. Yayınlama sürecinize en uygun dışa aktarma ve yükleme seçeneğini belirleyip mevcut bir uygulama imzalama anahtarı yükleyin.

3. Adım: Yükleme anahtarı oluşturun (isteğe bağlı olup önerilir)

  1. Bir yükleme anahtarı oluşturun ve sertifikayı Google Play'e yükleyin.
    • İsterseniz uygulama imzalama anahtarını yükleme anahtarınız olarak kullanmaya devam edebilirsiniz.
  2. Uygulama imzalama sertifikanızın dijital parmak izlerini (MD5, SHA-1 ve SHA-256) kopyalayın.
    • Test amaçlı olarak, yükleme anahtarınızın sertifikasını, sertifikanın dijital parmak izini ve uygulama imzalama anahtarını kullanarak API sağlayıcılara kaydetmeniz gerekebilir.

4. Adım: Sıradaki uygulama güncellemenizi yükleme anahtarıyla imzalayın

Uygulamanız için güncellemeler yayınladığınızda bunları yükleme anahtarınızla imzalamanız gerekir.

  • Yeni bir yükleme anahtarı oluşturmadıysanız: Sürümleri Google Play'e yüklemeden önce imzalamak için orijinal uygulama imzalama anahtarınızı kullanmaya devam edin. Uygulama imzalama anahtarınızı kaybederseniz yeni bir yükleme anahtarı oluşturabilir ve Google'a kaydederek uygulamanızı güncellemeye devam edebilirsiniz.
  • Yeni bir yükleme anahtarı oluşturduysanız: Sürümleri Google Play'e yüklemeden önce imzalamak için yeni yükleme anahtarınızı kullanın. Sürümler yüklendikten sonra, Google, kimliğinizi doğrulamak için sürümün bir yükleme anahtarıyla imzalanıp imzalanmadığını kontrol eder. Yükleme anahtarınızı kaybederseniz destek ekibiyle iletişime geçerek yükleme anahtarınızın sıfırlanmasını sağlayabilirsiniz.

Yükleme anahtarı oluşturma ve anahtar depolarını güncelleme

Daha fazla güvenlik için, uygulamanızı uygulama imzalama anahtarınızla değil, yeni bir yükleme anahtarıyla imzalamanız önerilir.

Yükleme anahtarını, Google Play'den uygulama imzalamaya kaydolduğunuz sırada ya da daha sonra Sürüm yönetimi > Uygulama imzalama bölümüne giderek oluşturabilirsiniz.

Yükleme anahtarının nasıl oluşturulacağı aşağıda açıklanmıştır:

  1. Android Developers sitesindeki talimatları uygulayın. Anahtarınızı güvenli bir yerde saklayın.
  2. Yükleme anahtarının sertifikasını PEM biçiminde dışa aktarın. Aşağıdaki altı çizili bağımsız değişkenlerin yerine başkalarını koyun:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Yayınlama sürecinde sizden istendiğinde, Google'a kaydetmek için sertifikayı yükleyin.

Yükleme anahtarı kullandığınızda:

  • Yükleme anahtarınız yalnızca Google'da kayıtlı olur ve uygulama oluşturucunun kimliğini doğrulamak için kullanılır.
  • Yüklediğiniz APK'lar kullanıcılara gönderilmeden önce imzanız APK'lardan kaldırılır.
Yükleme anahtarı kısıtlamaları
  • 2.048 bit veya daha yüksek bir RSA anahtarı olmalıdır.
  • 2.048 bitten düşük olan DSA, EC ve RSA anahtarları desteklenmez.
Anahtar depolarını güncelleme

Yükleme anahtarı oluşturduktan sonra, aşağıda belirtilen yerleri kontrol etmeniz ve güncellemeniz önerilir:

  • Yerel makineler
  • Fiziksel erişiminizin olduğu kilitli sunucu (değişik ACL'ler)
  • Bulut makinesi (değişik ACL'ler)
  • Özel sırlar yönetim hizmetleri
  • (Git) veri havuzları

En iyi örnekler

  • Uygulamanızı Google Play'in dışında da dağıtıyorsanız veya ileride dağıtmayı planlıyorsanız, her uygulama mağazası için kullanmak istediğiniz uygulama imzalama anahtarını oluşturabilir ve Google Play'den uygulama imzalamaya kaydolduğunuz zaman Google'a yükleyebilirsiniz.
  • Hesabınızı korumak için Play Console'unuza erişimi olan hesaplarda 2 Adımlı Doğrulama'yı açın.
  • Bir uygulama paketini test kanalına veya üretim kanalına yayınladıktan sonra uygulama paketi gezginini ziyaret ederek belirli bir cihaza ait tüm APK'ların bulunduğu ZIP arşivini indirebilirsiniz. Bu APK'lar uygulama imzalama anahtarıyla imzalanır. ZIP arşivindeki APK'ları bir cihaza yüklemek için bundletool komut satırı yardımcı programını kullanabilirsiniz.
  • Daha fazla güvenlik için, uygulama imzalama anahtarınızdan farklı, yeni bir yükleme anahtarı oluşturun.
  • Yükleme anahtarıyla imzalanan APK'yı test etmek isterseniz kimlik doğrulaması için yükleme anahtarınızı, uygulama imzanızı kullanan herhangi bir hizmet veya API ile kaydetmeniz gerekir (ör. Google Haritalar API'si veya Facebook SDK'sı).
  • Herhangi bir Google API'si kullanıyorsanız yükleme sertifikasını uygulamanıza ilişkin Google Cloud Console'a kaydetmek isteyebilirsiniz.

Yükleme anahtarınız kaybolduysa veya güvenliği ihlal edildiyse

Özel yükleme anahtarınızı kaybettiyseniz veya anahtarın güvenliği ihlal edildiyse yeni bir yükleme anahtarı oluşturabilir ve hesap sahibinizden anahtarın sıfırlanması için destek ekibiyle iletişime geçmesini isteyebilirsiniz. Destek ekibiyle iletişime geçerken, hesap sahibinizin upload_certificate.pem dosyasını eklediğinden emin olun.

Destek ekibimiz yeni yükleme anahtarını kaydettikten sonra size bir e-posta gönderilir. Bu e-postayı aldıktan sonra anahtar depolarınızı güncelleyebilir ve anahtarınızı API sağlayıcılara kaydedebilirsiniz.

Önemli: Yükleme anahtarınızı sıfırlamanız, Google Play'in APK'ları kullanıcılara teslim etmeden önce yeniden imzalamak için kullandığı uygulama imzalama anahtarını etkilemez.

Bu size yardımcı oldu mu?
Bunu nasıl iyileştirebiliriz?