Android, tüm APK'ların bir cihaza yüklenmeden veya güncellenmeden önce bir sertifikayla dijital olarak imzalanmasını gerektirir. Android App Bundle'ı kullanarak sürüm yayınlarken, Play Console'a yüklemeden önce uygulama paketinizi bir yükleme anahtarıyla imzalamanız gerekir. Gerisini Play Uygulama İmzalama halleder. Play Store'da veya diğer mağazalarda APK'lar kullanarak dağıtılan uygulamalarda, yüklenmesi için APK'larınızı manuel olarak imzalamanız gerekir.
Bu sayfada uygulama imzalama ve güvenlikle ilgili bazı önemli kavramlar, Android Studio'yu kullanarak uygulamanızı Google Play'de yayınlamak üzere imzalama ve Play Uygulama İmzalama'yı yapılandırmayla ilgili bazı önemli kavramlar anlatılmaktadır.
Aşağıda yeni bir uygulamayı imzalayıp Google Play'de yayınlamak için ihtiyaç duyabileceğiniz adımlara üst düzey bir genel bakış verilmiştir:
- Yükleme anahtarı ve anahtar deposu oluşturma
- Uygulamanızı yükleme anahtarınızla imzalama
- Play Uygulama İmzalama'yı yapılandırma
- Uygulamanızı Google Play'e yükleme
- Uygulamanızın sürümünü hazırlayıp kullanıma sunma
Bunun yerine uygulamanız mevcut bir uygulama imzalama anahtarıyla Google Play Store'da zaten yayınlanmışsa veya uygulama imzalama anahtarını yeni bir uygulamanın Google tarafından oluşturulması yerine seçmek isterseniz aşağıdaki adımları izleyin:
- Uygulamanızın imzalama anahtarıyla uygulamanızı imzalayın.
- Play Uygulama İmzalama'ya uygulamanızın imzalama anahtarını yükleyin.
- (Önerilir) Uygulamanızın gelecekteki güncellemeleri için bir yükleme sertifikası oluşturun ve kaydedin.
- Uygulamanızı Google Play'e yükleme
- Uygulamanızın sürümünü hazırlayıp kullanıma sunma
Bu sayfada, uygulamanızı diğer uygulama mağazalarına yüklerken kullanmak için kendi anahtarlarınızı nasıl yöneteceğiniz de açıklanmaktadır. Android Studio'yu kullanmıyorsanız veya uygulamanızı komut satırından imzalamak istiyorsanız apksigner
'ı nasıl kullanacağınızı öğrenin.
Play Uygulama İmzalama
Play Uygulama İmzalama ile Google, uygulamanızın imzalama anahtarını sizin için yönetir, korur ve dağıtım için APK'larınızı imzalamak için kullanır. Ayrıca, uygulama paketleri, Google Play Store'da APK oluşturma ve imzalama işlemlerini ertelediğinden, uygulama paketinizi yüklemeden önce Play Uygulama İmzalama'yı yapılandırmanız gerekir. Bunu yaptığınızda aşağıdaki avantajlardan yararlanabilirsiniz:
- Android App Bundle'ı kullanarak Google Play'in gelişmiş iletim modlarını destekleyin. Android App Bundle, uygulamanızı çok daha küçük hale getirir, sürümlerinizi basitleştirir ve özellik modüllerini kullanmayı ve hazır deneyimler sunmayı mümkün kılar.
- İmzalama anahtarınızın güvenliğini artırın ve Google Play'e yüklediğiniz uygulama paketini imzalamak için ayrı bir yükleme anahtarı kullanmaya olanak tanıyın.
Anahtar yükseltmesi, mevcut anahtarınızın güvenliği ihlal edilirse veya daha güçlü bir kriptografik anahtara geçmeniz gerekirse uygulama imzalama anahtarınızı değiştirmenize olanak tanır.
Play Uygulama İmzalama iki anahtar kullanır: uygulama imzalama anahtarı ve yükleme anahtarı. Bu anahtarlar, Anahtarlar ve anahtar depoları ile ilgili bölümde daha ayrıntılı olarak açıklanmıştır. Yükleme anahtarı sizde kalır ve uygulamanızı Google Play Store'a yüklemek üzere imzalamak için bu anahtarı kullanırsınız. Google, kimliğinizi doğrulamak için yükleme sertifikasını kullanır ve Şekil 1'de gösterildiği gibi dağıtım için APK'larınızı uygulama imzalama anahtarınızla imzalar. Ayrı bir yükleme anahtarı kullanarak, anahtarınızın kaybolması veya güvenliğinin ihlal edilmesi halinde yükleme anahtarının sıfırlanmasını isteyebilirsiniz.
Play Uygulama İmzalama'yı etkinleştirmemiş uygulamalarda, uygulamanızın imzalama anahtarını kaybederseniz uygulamanızı güncelleme imkanını kaybetmiş olursunuz.
1. Şekil. Play Uygulama İmzalama ile uygulama imzalama
Anahtarlarınız, Google'ın kendi anahtarlarını depolamak için kullandığı altyapıda saklanır ve burada Google'ın Anahtar Yönetim Hizmeti tarafından korunur. Google Cloud Güvenlik Raporları'nı okuyarak Google’ın teknik altyapısı hakkında daha fazla bilgi edinebilirsiniz.
Play Uygulama İmzalama'yı kullanırken yükleme anahtarınızı kaybederseniz veya anahtarın güvenliği ihlal edilirse Play Console'dan yükleme anahtarının sıfırlanmasını isteyebilirsiniz. Uygulama imzalama anahtarınız Google tarafından sağlandığından, yükleme anahtarlarını değiştirseniz bile uygulamanızın yeni sürümlerini orijinal uygulamaya güncelleme olarak yüklemeye devam edebilirsiniz. Daha fazla bilgi edinmek için Kayıp veya güvenliği ihlal edilmiş bir özel yükleme anahtarını sıfırlama konusunu okuyun.
Sonraki bölümde uygulama imzalama ve güvenlik ile ilgili bazı önemli terimler ve kavramlar açıklanmaktadır. Devam edip uygulamanızı Google Play Store'a yüklenmek üzere nasıl hazırlayacağınızı öğrenmek isterseniz Uygulamanızı yayınlanmak üzere imzalama bölümüne gidin.
Anahtar depoları, anahtarlar ve sertifikalar
Java Anahtar Depoları (.jks veya .keystore), sertifika ve özel anahtar depoları olarak hizmet veren ikili dosyalardır.
Dijital sertifika veya kimlik sertifikası olarak da bilinen ortak anahtar sertifikası (.der
veya .pem
dosyaları), ortak/özel anahtar çiftinin ortak anahtarını ve ilgili özel anahtarın sahibini tanımlayan diğer meta verileri (ör. ad ve konum) içerir.
Anlamanız gereken farklı anahtar türleri aşağıda belirtilmiştir:
- Uygulama imzalama anahtarı: Bir kullanıcının cihazında yüklü APK'ları imzalamak için kullanılan anahtar. Android'in güvenli güncelleme modeli kapsamında, imzalama anahtarı, uygulamanızın kullanım ömrü boyunca asla değişmez. Uygulama imzalama anahtarı gizlidir ve gizli tutulmalıdır. Ancak isterseniz uygulama imzalama anahtarınız kullanılarak oluşturulan sertifikayı paylaşabilirsiniz.
Yükleme anahtarı: Uygulama paketini veya APK'yı Google Play ile uygulama imzalama için yüklemeden önce imzalamak için kullandığınız anahtardır. Yükleme anahtarını gizli tutmanız gerekir. Ancak, yükleme anahtarınız kullanılarak oluşturulan sertifikayı paylaşabilirsiniz. Yükleme anahtarını aşağıdaki yöntemlerden birini kullanarak oluşturabilirsiniz:
- Kaydolduğunuzda Google'ın uygulama imzalama anahtarını sizin için oluşturmasını seçerseniz uygulamanızı yayınlanmak üzere imzalamak için kullandığınız anahtar, yükleme anahtarınız olarak atanır.
- Yeni veya mevcut uygulamanızı kaydederken Google'a uygulama imzalama anahtarını sağlarsanız daha fazla güvenlik için kaydolma işlemi sırasında veya sonrasında yeni bir yükleme anahtarı oluşturabilirsiniz.
- Yeni bir yükleme anahtarı oluşturmazsanız her sürümü imzalamak için yükleme anahtarınız olarak uygulama imzalama anahtarınızı kullanmaya devam edersiniz.
İpucu: Anahtarlarınızı güvende tutmak için uygulama imzalama anahtarınızla yükleme anahtarınızın farklı olmasını sağlamanızı tavsiye ederiz.
API sağlayıcılarla çalışma
Uygulama imzalama anahtarının ve yükleme anahtarınızın sertifikasını Play Console'daki Sürüm > Kurulum > Uygulama imzalama sayfasından indirebilirsiniz. Bu, ortak anahtarları API sağlayıcılara kaydetmek için kullanılır. Özel anahtarınızı içermediğinden paylaşılması amaçlanmıştır.
Sertifika parmak izi, API sağlayıcıların hizmetlerini kullanmak amacıyla bir uygulamayı kaydetmek için genellikle paket adıyla birlikte talep ettiği sertifikanın kısa ve benzersiz bir 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ı sayfadan orijinal sertifikayı (.der
) indirerek diğer parmak izlerini de hesaplayabilirsiniz.
Hata ayıklama derlemenizi imzalayın
Projenizi IDE'den çalıştırırken veya hata ayıklama sırasında Android Studio, uygulamanızı Android SDK araçları tarafından oluşturulan bir hata ayıklama sertifikasıyla otomatik olarak imzalar. Android Studio'da projenizi ilk kez çalıştırdığınızda veya projede hata ayıkladığınızda, IDE otomatik olarak $HOME/.android/debug.keystore
'de hata ayıklama anahtar deposunu ve sertifikasını oluşturup anahtar deposu ile anahtar şifrelerini ayarlar.
Hata ayıklama sertifikası, derleme araçları tarafından oluşturulduğundan ve tasarımı gereği güvenli olmadığından çoğu uygulama mağazası (Google Play Store da dahil) hata ayıklama sertifikasıyla imzalanan uygulamaları yayınlamak için kabul etmez.
Android Studio, hata ayıklama imzalama bilgilerinizi otomatik olarak bir imzalama yapılandırmasında saklar. Böylece her hata ayıklama yaptığınızda bu bilgileri girmeniz gerekmez. İmzalama yapılandırması; anahtar deposu konumu, anahtar deposu şifresi, anahtar adı ve anahtar şifresi dahil olmak üzere uygulamanızı imzalamak için gerekli tüm bilgileri içeren bir nesnedir.
Hata ayıklama amacıyla uygulama derleme ve çalıştırma hakkında daha fazla bilgi için Uygulamanızı Derleme ve Çalıştırma bölümüne bakın.
Hata ayıklama sertifikasının geçerlilik süresi
Hata ayıklama amacıyla uygulamanızı imzalamak için kullanılan kendinden imzalı sertifikanın geçerlilik süresi, oluşturulma tarihinden itibaren 30 yıldır. Sertifikanın süresi dolduğunda bir yapı hatası alırsınız.
Bu sorunu düzeltmek için aşağıdaki konumlardan birinde depolanan debug.keystore
dosyasını silmeniz yeterlidir:
- OS X ve Linux'ta
~/.android/
- Windows XP'de
C:\Documents and Settings\user\.android\
- Windows Vista ve Windows 7, 8 ve 10'da
C:\Users\user\.android\
Gelecek sefer uygulamanızın hata ayıklama sürümünü derleyip çalıştırdığınızda, Android Studio yeni bir anahtar deposu ve hata ayıklama anahtarı yeniden oluşturur.
Google Play'de yayınlanması için uygulamanızı imzalayın
Uygulamanızı yayınlamaya hazır olduğunuzda, uygulamanızı imzalamanız ve Google Play gibi bir uygulama mağazasına yüklemeniz gerekir. Uygulamanızı Google Play'de ilk kez yayınlarken Play Uygulama İmzalama'yı da yapılandırmanız gerekir. Play Uygulama İmzalama, Ağustos 2021'den önce oluşturulan uygulamalar için isteğe bağlıdır. Bu bölümde, uygulamanızı yayınlanmak için doğru şekilde nasıl imzalayacağınız ve Play Uygulama İmzalama'yı nasıl yapılandıracağınız gösterilmektedir.
Yükleme anahtarı ve anahtar deposu oluşturma
Play Uygulama İmzalama'yı yapılandırırken yararlı olan bir yükleme anahtarınız yoksa Android Studio'yu kullanarak aşağıdaki şekilde bir yükleme anahtarınız oluşturabilirsiniz:
- Menü çubuğunda Derleme > İmzalanmış Paket/APK Oluştur'u tıklayın.
- İmzalanmış Paket veya APK oluştur iletişim kutusunda, Android App Bundle veya APK'yı seçin ve İleri'yi tıklayın.
- Anahtar deposu yolu alanının altında Yeni oluştur'u tıklayın.
Yeni Anahtar Deposu penceresinde, anahtar deponuz ve anahtarınız için Şekil 2'de gösterildiği gibi aşağıdaki bilgileri sağlayın.
2. Şekil. Android Studio'da yeni bir yükleme anahtarı ve anahtar deposu oluşturun.
Anahtar deposu
- Anahtar deposu yolu: Anahtar deponuzun oluşturulması gereken konumu seçin.
Ayrıca, konum yolunun sonuna
.jks
uzantısıyla bir dosya adı eklenmelidir. - Şifre: Anahtar deponuz için güvenli bir şifre oluşturup onaylayın.
- Anahtar deposu yolu: Anahtar deponuzun oluşturulması gereken konumu seçin.
Ayrıca, konum yolunun sonuna
Anahtar
- Takma ad: Anahtarınız için tanımlayıcı bir ad girin.
- Şifre: Anahtarınız için güvenli bir şifre oluşturup onaylayın. Bu şifre, anahtar deposu şifrenizle aynı olmalıdır. (Daha fazla bilgi için lütfen bilinen sorun bölümüne bakın)
- Geçerlilik (yıl): Anahtarınızın geçerli olacağı süreyi yıl olarak ayarlayın. Anahtarınız en az 25 yıl boyunca geçerli olmalıdır. Böylece uygulamanızın kullanım ömrü boyunca uygulama güncellemelerini aynı anahtarla imzalayabilirsiniz.
- Sertifika: Sertifikanız için kendinizle ilgili bazı bilgileri girin. Bu bilgi uygulamanızda gösterilmez, ancak sertifikanıza APK'nın bir parçası olarak eklenir.
Formu doldurduktan sonra Tamam'ı tıklayın.
Uygulamanızı yükleme anahtarınızla oluşturmak ve imzalamak istiyorsanız Uygulamanızı yükleme anahtarınızla imzalama hakkındaki bölüme geçin. Yalnızca anahtar ve anahtar deposu oluşturmak istiyorsanız İptal'i tıklayın.
Uygulamanızı anahtarınızla imzalayın
Zaten bir yükleme anahtarınız varsa uygulamanızı imzalamak için bu anahtarı kullanın. Bunun yerine, uygulamanız mevcut bir uygulama imzalama anahtarıyla imzalanıp Google Play Store'da yayınlandıysa uygulamanızı imzalamak için bu anahtarı kullanın. Daha sonra, Google Play ile imzalayıp sonraki güncellemeleri uygulamanıza yüklemek için ayrı bir yükleme anahtarı oluşturabilir ve kaydedebilirsiniz.
Uygulamanızı Android Studio'yu kullanarak imzalamak için aşağıdaki adımları izleyin:
- Şu anda İmzalanmış Paket veya APK Oluştur iletişim kutunuz açık değilse Derleme > İmzalanmış Paket/APK Oluştur'u tıklayın.
- İmzalanmış Paket veya APK oluştur iletişim kutusunda, Android App Bundle veya APK'yı seçin ve Sonraki'yi tıklayın.
- Açılır menüden bir modül seçin.
Anahtar deponuzun yolunu ve anahtarınızın takma adını belirtip her ikisi için de şifreleri girin. Yükleme anahtar deponuzu ve anahtarınızı henüz hazırlamadıysanız önce Yükleme anahtarı ve anahtar deposu oluşturun, ardından bu adımı tamamlamak için geri dönün.
3. Şekil. Yükleme anahtarınızla uygulamanızı imzalayın.
İleri'yi tıklayın.
Bir sonraki pencerede (Şekil 4'te gösterilmiştir), imzalı uygulamanız için hedef klasör belirleyin, derleme türünü ve varsa ürün çeşitlerini seçin.
Bir APK oluşturup imzalıyorsanız uygulamanızın hangi İmza Sürümlerini desteklemesini istediğinizi seçmeniz gerekir. Daha fazla bilgi edinmek için uygulama imzalama şemaları hakkında bilgi edinin.
Oluştur'u tıklayın.

5. Şekil. Uygulama paketinizi analiz etmek veya bulmak için pop-up'taki bağlantıyı tıklayın.
Android Studio, imzalanmış uygulamanızı oluşturmayı tamamladıktan sonra Şekil 5'te gösterildiği gibi, pop-up bildirimde ilgili seçeneği tıklayarak uygulamanızı bulabilir veya analiz edebilirsiniz.
Artık uygulamanızı Play Uygulama İmzalama'ya etkinleştirmeye ve yayınlamak üzere uygulamanızı yüklemeye hazırsınız. Uygulama yayınlama işleminde yeniyseniz Lansmana genel bakış makalesini okuyabilirsiniz. Aksi takdirde, Uygulamanızı Play Console'a yükleme hakkındaki sayfaya devam edin.
Play Uygulama İmzalama'yı kullanma
Bu sayfanın önceki bölümlerinde açıklandığı gibi, uygulamanızı Google Play üzerinden dağıtılmak üzere imzalamak için Play Uygulama İmzalama'yı yapılandırmak gerekir (kendinden imzalı APK'ları dağıtmaya devam edebilecek uygulamalar Ağustos 2021'den önce oluşturulan uygulamalar hariç). Uygulamanız gereken adımlar, uygulamanızın henüz Google Play'de yayınlanmamış veya Ağustos 2021'den önce imzalanıp mevcut bir uygulama imzalama anahtarı kullanılarak yayınlanmış olup olmadığına bağlı olarak farklılık gösterir.
Yeni bir uygulama yapılandır
Henüz Google Play'de yayınlanmamış bir uygulama için imzalamayı yapılandırmak üzere aşağıdaki adımları uygulayın:
- Henüz yapmadıysanız bir yükleme anahtarı oluşturun ve bu yükleme anahtarıyla uygulamanızı imzalayın.
- Play Console hesabınızda oturum açın.
- Yeni bir sürüm oluşturmak için sürümünüzü hazırlama ve kullanıma sunma adımlarını uygulayın.
- Bir sürüm kanalı seçtikten sonra, Uygulama imzalama bölümünün altında uygulama imzalamayı aşağıdaki gibi yapılandırın:
- Google Play'in sizin için uygulama imzalama anahtarı oluşturmasını ve uygulamanızı imzalamak üzere kullanmasını sağlamak için hiçbir şey yapmanız gerekmez. İlk sürümünüzü imzalamak için kullandığınız anahtar yükleme anahtarınız olur ve gelecekteki sürümleri imzalamak için bu anahtarı kullanmanız gerekir.
- Geliştirici hesabınızdaki başka bir uygulamayla aynı anahtarı kullanmak için Uygulama imzalama anahtarını değiştir > Bu hesaptaki başka bir uygulamayla aynı anahtarı kullan'ı seçin, bir uygulama seçin ve ardından Devam'ı tıklayın.
- Google'ın uygulamanızı imzalarken kullanması için kendi imzalama anahtarınızı sağlamak üzere Uygulama imzalama anahtarını değiştir'i seçin ve özel anahtar ile genel sertifikasını güvenli bir şekilde yüklemenize olanak tanıyan Dışa aktar ve yükle seçeneklerinden birini belirleyin.
App Bundle adlı bölümde, yükleme anahtarınızı kullanarak imzaladığınız uygulamayı bulup yüklemek için Dosyalara göz at'ı tıklayın. Uygulamanızı yayınlama hakkında daha fazla bilgi için sürümünüzü hazırlama ve kullanıma sunma konusuna bakın. Play Uygulama İmzalama'yı yapılandırdıktan sonra uygulamanızı yayınladığınızda Google Play, mevcut bir anahtarı yüklemediğiniz sürece uygulama oluşturur ve uygulamanızın imzalama anahtarını sizin için yönetir. Uygulamanızı Google Play'e yüklemeden önce, yapacağınız sonraki güncellemeleri uygulamanızın yükleme anahtarını kullanarak imzalamanız yeterlidir.
Uygulamanız için yeni bir yükleme anahtarı oluşturmanız gerekiyorsa Kaybolan veya güvenliği ihlal edilmiş bir özel yükleme anahtarını sıfırlama bölümüne gidin.
Mevcut bir uygulamayı kaydetme
Google Play'de yayınlanmış olan bir uygulamayı mevcut bir uygulama imzalama anahtarını kullanarak güncelliyorsanız Play Uygulama İmzalama'yı aşağıdaki şekilde etkinleştirebilirsiniz:
- Play Console hesabınızda oturum açın ve uygulamanıza gidin.
- Soldaki menüde Sürüm > Kurulum > Uygulama imzalama'yı tıklayın.
- Varsa, Hizmet Şartları'nı inceleyin ve Kabul et'i seçin.
- Google Play'e yüklemek istediğiniz imzalama anahtarını en iyi açıklayan seçeneklerden birini belirleyin ve gösterilen talimatları uygulayın. Örneğin, imzalama anahtarınız için Java Anahtar Deposu kullanıyorsanız Java Anahtar Deposu'ndan yeni bir uygulama imzalama anahtarı yükle'yi seçin. Ardından, PEPK aracını indirip çalıştırmak ve oluşturulan dosyayı şifrelenmiş anahtarınızla yüklemek için talimatları uygulayın.
- Kaydol'u tıklayın.
Şimdi uygulamanızın imzalama ve yükleme sertifikalarıyla ilgili ayrıntıları içeren bir sayfa göreceksiniz. Google Play artık uygulamanızı kullanıcılara dağıtırken mevcut anahtarınızla imzalıyor. Bununla birlikte, Play Uygulama İmzalama'nın en önemli avantajlarından biri Google Play'e yüklediğiniz öğeyi imzalamak için kullandığınız anahtarı, Google Play'in uygulamanızı kullanıcılara dağıtılmak üzere imzalamak için kullandığı anahtardan ayırabilmenizdir. Bu nedenle, ayrı bir yükleme anahtarı oluşturup kaydetmek için bir sonraki bölümde verilen adımları uygulamayı düşünün.
Yükleme sertifikası oluşturma ve kaydetme
Yükleme anahtarıyla imzalanmamış bir uygulama yayınlarken Google Play Console, uygulamanın gelecekteki güncellemeleri için bir tane kaydetme seçeneği sunar. Bu isteğe bağlı bir adım olsa da Google Play'in uygulamanızı kullanıcılara dağıtmak için kullandığı anahtardan farklı bir anahtarla uygulamanızı yayınlamanız önerilir. Bu şekilde Google, imzalama anahtarınızı güvende tutar ve kaybolan veya güvenliği ihlal edilmiş bir özel yükleme anahtarını sıfırlama seçeneğine sahip olursunuz. Bu bölümde yükleme anahtarı, yükleme sertifikasından yükleme sertifikası ve uygulamanızın gelecekteki güncellemeleri için Google Play'e nasıl kaydedileceği açıklanmaktadır.
Aşağıda, Play Console'da yükleme sertifikası kaydetme seçeneğini gördüğünüz durumlar açıklanmaktadır:
- İmzalama anahtarıyla imzalanmış yeni bir uygulama yayınlayıp bu uygulamayı Play Uygulama İmzalama'da etkinleştirdiğinizde.
- Play Uygulama İmzalama'ya halihazırda dahil olan ancak kendi imzalama anahtarı kullanılarak imzalanmış mevcut bir uygulamayı yayınlamak üzereyken.
Play Uygulama İmzalama'ya halihazırda dahil olan mevcut bir uygulamaya yönelik güncelleme yayınlamıyor ve bir yükleme sertifikası kaydetmek istiyorsanız aşağıdaki adımları tamamlayın ve kaybolan veya güvenliği ihlal edilmiş bir özel yükleme anahtarını sıfırlama bölümüne geçin.
Henüz yapmadıysanız bir yükleme anahtarı ve anahtar deposu oluşturun.
Yükleme anahtarınızı ve anahtar deponuzu oluşturduktan sonra, aşağıdaki komutla keytool
kullanarak yükleme anahtarınızdan bir ortak sertifika oluşturmanız gerekir:
$ keytool -export -rfc -keystore your-upload-keystore.jks -alias upload-alias -file output_upload_certificate.pem
Artık yükleme sertifikanız olduğuna göre, Play Console'dan istendiğinde veya yükleme anahtarınızı sıfırlarken bunu Google'a kaydedin.
Uygulama imzalama anahtarınızı yeni sürüme geçirin
Bazı durumlarda, uygulamanızın imzalama anahtarını değiştirmek isteyebilirsiniz. Örneğin, şifreleme açısından daha güçlü bir anahtar istemeniz veya imzalama anahtarınızın güvenliği ihlal edilmiş olması olabilir. Ancak kullanıcılar uygulamanızı yalnızca güncelleme aynı imzalama anahtarıyla imzalandığında güncelleyebildiğinden, halihazırda yayınlanmış bir uygulamanın imzalama anahtarını değiştirmek zordur.
Uygulamanızı Google Play'de yayınlarsanız yayınlanan uygulamanızın imzalama anahtarını Play Console aracılığıyla yeni sürüme geçirebilirsiniz. Yeni anahtarınız, Android 13 ve sonraki sürümlerde yüklemeleri ve uygulama güncellemelerini imzalamak için kullanılır. Eski uygulama imzalama anahtarınız, Android'in önceki sürümlerindeki kullanıcılar için güncellemeleri imzalamak için kullanılır.
Daha fazla bilgi için Uygulama imzalama anahtarınızı yeni sürüme geçirme bölümünü okuyun.
Kayıp veya güvenliği ihlal edilmiş özel yükleme anahtarını sıfırlama
Özel yükleme anahtarınızı kaybettiyseniz veya özel anahtarınızın güvenliği ihlal edildiyse Play Console'da yeni bir yükleme anahtarı oluşturup yükleme anahtarının sıfırlanmasını isteyebilirsiniz.
Derleme işlemini, uygulamanızı otomatik olarak imzalayacak şekilde yapılandırın
Android Studio'da, derleme işlemi sırasında bir imzalama yapılandırması oluşturup bunu sürüm derleme türünüze atayarak projenizi, uygulamanızın sürüm sürümünü otomatik olarak imzalayacak şekilde yapılandırabilirsiniz. İmzalama yapılandırması bir anahtar deposu konumu, anahtar deposu şifresi, anahtar takma adı ve anahtar şifresinden oluşur. İmzalama yapılandırması oluşturmak ve bunu Android Studio'yu kullanarak sürüm derleme türünüze atamak için aşağıdaki adımları tamamlayın:
- Proje penceresinde uygulamanızı sağ tıklayın ve Modül Ayarlarını Aç'ı tıklayın.
- Proje Yapısı penceresinde, sol paneldeki Modüller bölümünde imzalamak istediğiniz modülü tıklayın.
- İmzalama sekmesini ve ardından Ekle'yi tıklayın
.
-
Anahtar deposu dosyanızı seçin, bu imzalama yapılandırması için bir ad girin (birden fazla oluşturabilirsiniz) ve gerekli bilgileri girin.
7. Şekil. Yeni bir imzalama yapılandırması oluşturma penceresi.
- Derleme Türleri sekmesini tıklayın.
- Sürümü bırak derlemeyi tıklayın.
-
Signing Config (Yapılandırma Yapılandırması) bölümünde, az önce oluşturduğunuz imzalama yapılandırmasını seçin.
8. Şekil. Android Studio'da bir imzalama yapılandırması seçin.
- Tamam'ı tıklayın.
Artık Android Studio'daki Derleme > Derleme Paketleri / APK'lar bölümünden bir seçenek belirleyerek sürüm derleme türünüzü her derlediğinizde IDE, belirlediğiniz imzalama yapılandırmasını kullanarak uygulamanızı otomatik olarak imzalar. İmzalanmış APK'nızı veya uygulama paketinizi, oluşturduğunuz modülün proje dizinindeki build/outputs/
dizininde bulabilirsiniz.
İmzalama yapılandırması oluşturduğunuzda, imzalama bilgileriniz Gradle derleme dosyalarınızdaki düz metine eklenir. Bir ekipte çalışıyorsanız veya kodunuzu herkese açık olarak paylaşıyorsanız imzalama bilgilerinizi derleme dosyalarından kaldırıp ayrı olarak saklayarak güvende kalmalısınız. İmzalama bilgilerinizi derleme dosyalarınızdan kaldırma hakkında daha fazla bilgiyi Derleme Dosyalarınızdan İmzalama Bilgilerini Kaldırma bölümünde bulabilirsiniz. İmzalama bilgilerinizi güvende tutma hakkında daha fazla bilgi için aşağıdaki Anahtarınızı güvende tutma bölümüne bakın.
Her ürünün aromasını farklı şekilde imzalayın
Uygulamanızda ürün aromaları kullanılıyorsa ve her aromayı farklı şekilde imzalamak istiyorsanız ek imzalama yapılandırmaları oluşturabilir ve bunları aromaya göre atayabilirsiniz:
- Proje penceresinde uygulamanızı sağ tıklayın ve Modül Ayarlarını Aç'ı tıklayın.
- Proje Yapısı penceresinde, sol paneldeki Modüller bölümünde imzalamak istediğiniz modülü tıklayın.
- İmzalama sekmesini ve ardından Ekle'yi tıklayın
.
-
Anahtar deposu dosyanızı seçin, bu imzalama yapılandırması için bir ad girin (birden fazla oluşturabilirsiniz) ve gerekli bilgileri girin.
10. Şekil. Yeni bir imzalama yapılandırması oluşturma penceresi.
- Tüm imzalama yapılandırmalarınızı oluşturana kadar 3. ve 4. adımları gereken şekilde tekrarlayın.
- Aromalar sekmesini tıklayın.
- Yapılandırmak istediğiniz türü tıklayın ve İmzalama Yapılandırması açılır menüsünden uygun imzalama yapılandırmasını seçin.
11. Şekil. İmzalama ayarlarını ürün özelliklerine göre yapılandırın.
Diğer ürün çeşitlerini yapılandırmak için bu işlemi tekrarlayın.
- Tamam'ı tıklayın.
İmzalama ayarlarınızı Gradle yapılandırma dosyalarında da belirtebilirsiniz. Daha fazla bilgi için İmzalama Ayarlarını Yapılandırma bölümüne bakın.
İmzalama raporu çalıştırma
Uygulamanızın her bir varyantıyla ilgili imzalama bilgilerini almak için Android Studio'da Gradle signingReport
görevini çalıştırın:
- Gradle araç penceresini açmak için Görünüm > Araç Pencereleri > Gradle'ı seçin.
- Raporu çalıştırmak için Uygulamanız > Görevler > Android > SignReport'u seçin
Kendi imzalama anahtarınızı yönetin
Play Uygulama İmzalama'yı etkinleştirmemeyi seçerseniz (yalnızca Ağustos 2021'den önce oluşturulan uygulamalar için) kendi uygulama imzalama anahtarınızı ve anahtar deponuzu yönetebilirsiniz. Anahtarın ve anahtar deposunun güvenliğini sağlamaktan sorumlu olduğunuzu unutmayın. Ayrıca, uygulamanız Android App Bundle, Play Feature Delivery ve Play Asset Delivery'yi destekleyemez.
Kendi anahtarınızı ve anahtar deponuzu oluşturmaya hazır olduğunuzda, ilk olarak anahtar deponuz için güçlü bir şifre ve anahtar deposunda saklanan her bir özel anahtar için ayrı güçlü bir şifre seçtiğinizden emin olun. Anahtar deponuzu güvenli bir yerde saklamalısınız. Uygulama imzalama anahtarınıza erişimi kaybederseniz veya anahtarınızın güvenliği ihlal edilirse Google, uygulama imzalama anahtarını sizin için alamaz ve uygulamanızın yeni sürümlerini, orijinal uygulamanın güncellemesi olarak kullanıcılara yayınlayamazsınız. Daha fazla bilgi için aşağıdaki Anahtarınızı güvende tutma bölümüne bakın.
Kendi uygulama imzalama anahtarınızı ve anahtar deponuzu yönetiyorsanız APK'nızı imzalarken uygulama imzalama anahtarınızı kullanarak yerel olarak imzalarsınız ve imzalanmış APK'yı Şekil 12'de gösterildiği gibi dağıtılmak üzere doğrudan Google Play Store'a yüklersiniz.
12. Şekil. Kendi uygulama imzalama anahtarınızı yönetirken uygulamayı imzalama
Play Uygulama İmzalama'yı kullandığınızda Google, imzalama anahtarınızı güvende tutar ve uygulamalarınızın kullanım ömrü boyunca doğru şekilde imzalanmasını ve güncellemeleri alabilmesini sağlar. Bununla birlikte, uygulama imzalama anahtarınızı kendiniz yönetmeye karar verirseniz birkaç noktayı aklınızda bulundurmanız gerekir.
İmzalama hakkında dikkat edilmesi gereken noktalar
Uygulamanızı beklenen kullanım süresi boyunca aynı sertifikayla imzalamanız gerekir. Bunu yapmanızın birkaç nedeni vardır:
- Uygulama yükseltme: Sistem, bir uygulamaya güncelleme yüklerken yeni sürümdeki sertifikaları mevcut sürümdekilerle karşılaştırır. Sertifikalar eşleşirse sistem güncellemeye izin verir. Yeni sürümü farklı bir sertifikayla imzalarsanız uygulamaya farklı bir paket adı atamanız gerekir. Bu durumda, kullanıcı yeni sürümü tamamen yeni bir uygulama olarak yükler.
- Uygulama modülerliği: Android, uygulamaların isterse aynı sertifikayla imzalanan APK'ların aynı süreçte çalışmasına izin verir. Böylece sistem bunları tek bir uygulama olarak değerlendirir. Bu şekilde uygulamanızı modüller halinde dağıtabilirsiniz ve kullanıcılar her bir modülü bağımsız olarak güncelleyebilir.
- İzinler aracılığıyla kod/veri paylaşımı: Android, imzaya dayalı izinleri zorunlu kılma özelliği sunar. Böylece bir uygulama, işlevleri belirli bir sertifikayla imzalanmış başka bir uygulamanın kullanımına sunabilir. Uygulamalarınız aynı sertifikaya sahip birden fazla APK'yı imzalayarak ve imza tabanlı izin kontrollerini kullanarak kod ve verileri güvenli bir şekilde paylaşabilir.
Bir uygulama için yükseltmeleri desteklemeyi planlıyorsanız uygulama imzalama anahtarınızın, uygulamanın beklenen kullanım ömrünü aşan bir geçerlilik süresine sahip olduğundan emin olun. Geçerlilik süresi 25 yıl veya daha uzun olabilir. Anahtarınızın geçerlilik süresi dolduğunda, kullanıcılar artık uygulamanızın yeni sürümlerine sorunsuz bir şekilde geçemeyecektir.
Uygulamalarınızı Google Play'de yayınlamayı planlıyorsanız uygulamanızı imzalamak için kullandığınız anahtarın geçerlilik süresi 22 Ekim 2033'ten sonra sona ermelidir. Google Play, yeni sürümler kullanıma sunulduğunda kullanıcıların uygulamaları sorunsuz bir şekilde yeni sürüme geçirebilmeleri için bu şartı zorunlu kılar.
Anahtarınızı güvende tutun
Uygulama imzalama anahtarınızı ve anahtar deponuzu kendiniz yönetmeyi ve güvence altına almayı seçerseniz (Play Uygulama İmzalama'yı etkinleştirmek yerine) uygulama imzalama anahtarınızın güvenliğini sağlamak hem sizin hem de kullanıcı için çok önemlidir. Birinin anahtarınızı kullanmasına izin verirseniz veya anahtar deponuzu ve şifrelerinizi üçüncü bir tarafın bulup kullanabileceği güvenli olmayan bir yerde bırakırsanız yazma kimliğiniz ve kullanıcının güveni tehlikeye girer.
Bir üçüncü tarafın uygulama imzalama anahtarınızı sizin bilginiz veya izniniz olmadan almayı yönetmesi gerekirse söz konusu kişi, kötü amaçlı olarak orijinal uygulamalarınızın yerini alan veya bunları bozan uygulamaları imzalayıp dağıtabilir. Bu tür bir kişi ayrıca, başka uygulamalara veya sistemin kendisine saldıran ya da kullanıcı verilerini bozan ya da çalan uygulamaları kimliğiniz altında imzalayıp dağıtabilir.
Uygulamanızın gelecekteki tüm sürümlerini imzalamak için özel anahtarınız gereklidir. Anahtarınızı kaybeder veya kaybederseniz mevcut uygulamanız için güncelleme yayınlayamazsınız. Daha önce oluşturulmuş bir anahtarı yeniden oluşturamazsınız.
Geliştirici tüzel kişiliği olarak itibarınız, anahtarınızın geçerliliği sona erene kadar her zaman doğru bir şekilde uygulama imzalama anahtarınızın güvenliğini sağlamanıza bağlıdır. Anahtarınızı güvende tutmanıza yardımcı olacak bazı ipuçlarını aşağıda bulabilirsiniz:
- Anahtar deposu ve anahtar için güçlü şifreler seçin.
- Özel anahtarınızı kimseye vermeyin veya kimseye ödünç vermeyin ve yetkisiz kişilerin anahtar deponuzu ve anahtar şifrelerinizi öğrenmesine izin vermeyin.
- Özel anahtarınızı içeren anahtar deposu dosyasını güvenli bir yerde saklayın.
Genel olarak, anahtarınızı oluştururken, kullanırken ve saklarken sağduyulu önlemler alırsanız anahtarınız güvende kalır.
Derleme dosyalarınızdan imzalama bilgilerini kaldırma
İmzalama yapılandırması oluşturduğunuzda Android Studio, imzalama bilgilerinizi düz metin olarak modülün build.gradle
dosyalarına ekler. Bir ekiple çalışıyorsanız veya kodunuzu açık kaynaklı olarak kullanıyorsanız başkalarının kolayca erişememesi için bu hassas bilgileri derleme dosyalarının dışına taşımanız gerekir. Bunu yapmak için güvenli bilgileri depolamak üzere ayrı bir özellik dosyası oluşturmanız ve bu dosyaya derleme dosyalarınızda aşağıdaki gibi başvuruda bulunmanız gerekir:
- İmzalama yapılandırması oluşturup bir veya daha fazla derleme türüne atayın. Bu talimatlarda, yukarıdaki Uygulamanızı otomatik olarak imzalamak için derleme işlemini yapılandırma bölümünde açıklandığı gibi, sürüm derleme türünüz için tek bir imzalama yapılandırması yapılandırdığınız varsayılmaktadır.
- Projenizin kök dizininde
keystore.properties
adlı bir dosya oluşturun. Bu dosya, imzalama bilgilerinizi aşağıdaki gibi içermelidir:storePassword=myStorePassword keyPassword=mykeyPassword keyAlias=myKeyAlias storeFile=myStoreFileLocation
- Modülünüzün
build.gradle
dosyasına,keystore.properties
dosyanızıandroid {}
bloğundan önce yüklemek için kod ekleyin.Eskitme
... // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. def keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. def keystoreProperties = new Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... }
Kotlin
... import java.util.Properties import java.io.FileInputStream // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. val keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. val keystoreProperties = Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(FileInputStream(keystorePropertiesFile)) android { ... }
Not:
keystore.properties
dosyanızı başka bir konumda (örneğin, projenin kök klasörü yerine modül klasöründe veya sürekli entegrasyon aracı kullanıyorsanız derleme sunucunuzda) depolamayı seçebilirsiniz. Bu durumda, gerçekkeystore.properties
dosyanızın konumunu kullanarakkeystorePropertiesFile
uygulamasını doğru şekilde başlatmak için yukarıdaki kodu değiştirmeniz gerekir. keystoreProperties['propertyName']
söz dizimini kullanarakkeystoreProperties
özelliğinde depolanan özelliklere başvurabilirsiniz. Bu söz dizimini kullanarak modülünüzünbuild.gradle
dosyasınınsigningConfigs
bloğunu,keystoreProperties
içinde depolanan imzalama bilgilerine referans verecek şekilde değiştirin.Eskitme
android { signingConfigs { config { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } ... }
Kotlin
android { signingConfigs { create("config") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } ... }
- Varyant Derleme araç penceresini açın ve sürüm derleme türünün seçildiğinden emin olun.
- Derleme > Derleme Paketleri / APK'lar altında bir seçenek belirleyerek sürüm derlemenizin APK'sını veya uygulama paketini oluşturun.
Derleme çıkışını modülünüzün
build/outputs/
dizininde görürsünüz.
Derleme dosyalarınız artık hassas bilgiler içermediğinden artık bunları kaynak denetimine ekleyebilir veya paylaşılan bir kod tabanına yükleyebilirsiniz. keystore.properties
dosyasını güvende tuttuğunuzdan emin olun. Bunu, kaynak kontrol sisteminizden kaldırmayı da içerebilir.