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 uygulama yayınlarken uygulama paketinizi Play Console'a yüklemeden önce bir yükleme anahtarıyla imzalamanız gerekir. Gerisi Play Uygulama İmzalama tarafından halledilir. Play Store'da veya diğer mağazalarda APK'lar kullanılarak dağıtılan uygulamalar için APK'larınızı yüklemeden önce 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ınlanmak üzere imzalama ve Play Uygulama İmzalama'yı yapılandırma hakkında bilgi verilmektedir.
Aşağıda, yeni bir uygulamayı imzalamak ve Google Play'de yayınlamak için uygulamanız gerekebilecek adımlara genel bir 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ırlama ve kullanıma sunma
Bunun yerine, uygulamanız mevcut bir uygulama imzalama anahtarıyla Google Play Store'da yayınlandıysa veya yeni bir uygulama için uygulama imzalama anahtarını Google'ın oluşturmasını istemek yerine kendiniz seçmek istiyorsanız aşağıdaki adımları uygulayın:
- Uygulamanızın imzalama anahtarıyla uygulamanızı imzalayın.
- Play Uygulama İmzalama'ya uygulamanızın imzalama anahtarını yükleyin.
- (Önerilen) Uygulamanızda yapılacak gelecekteki güncellemeler 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ırlama ve kullanıma sunma
Bu sayfada, uygulamanızı diğer uygulama mağazalarına yüklerken kendi anahtarlarınızı nasıl yöneteceğiniz de ele alınmaktadır. Android Studio'yu kullanmıyorsanız veya uygulamanızı komut satırından imzalamayı tercih ediyorsanız apksigner
'i nasıl kullanacağınızı öğrenin.
Play Uygulama İmzalama
Play Uygulama İmzalama özelliğini 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. Ayrıca, uygulama paketleri APK'ların derlenmesini ve imzalanmasını Google Play Store'a ertelediğinden, uygulama paketinizi yüklemeden önce Play Uygulama İmzalama'yı yapılandırmanız gerekir. Bu sayede aşağıdakilerden yararlanabilirsiniz:
- Android App Bundle'ı kullanın ve Google Play'in gelişmiş yayınlama modlarını destekleyin. Android App Bundle, uygulamanızı çok daha küçük hale getirir, sürümlerinizi basitleştirir, özellik modüllerini kullanmanızı ve anında deneyimler sunmanızı sağ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ı kullanmayı mümkün kılın.
Anahtar yükseltme, mevcut anahtarınızın güvenliği ihlal edildiğinde veya şifreleme açısından daha güçlü bir anahtara geçmeniz gerektiğinde 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 anahtarlarla ilgili daha ayrıntılı bilgi için Anahtarlar ve anahtar depoları bölümünü inceleyin. Yükleme anahtarını saklayıp Google Play Store'a yüklemek üzere uygulamanızı imzalamak için kullanırsınız. Google, kimliğinizi doğrulamak için yükleme sertifikasını kullanır ve APK'larınızı dağıtım için uygulama imzalama anahtarınızla imzalar(Şekil 1'de gösterildiği gibi). Ayrı bir yükleme anahtarı kullanarak, anahtarınızın kaybolması veya güvenliğinin ihlal edilmesi halinde yükleme anahtarı sıfırlama isteğinde bulunabilirsiniz.
Buna karşılık, Play Uygulama İmzalama'ya kaydolmadığınız uygulamalarda uygulamanızın imzalama anahtarını kaybederseniz uygulamanızı güncelleyemezsiniz.
Şekil 1. Play Uygulama İmzalama ile uygulama imzalama
Anahtarlarınız, Google'ın kendi anahtarlarını depolamak için kullandığı altyapıda saklanır ve 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'da yükleme anahtarı sıfırlama isteğinde bulunabilirsiniz. Uygulama imzalama anahtarınız Google tarafından korunduğundan, 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 için Kayıp veya güvenliği ihlal edilmiş özel yükleme anahtarını sıfırlama başlıklı makaleyi okuyun.
Sonraki bölümde, uygulama imzalama ve güvenlikle ilgili bazı önemli terimler ve kavramlar açıklanmaktadır. Bu bölümü atlayıp uygulamanızı Google Play Store'a yüklemeye nasıl hazırlayacağınızı öğrenmek istiyorsanız Uygulamanızı yayınlamak için imzalama başlıklı makaleyi inceleyin.
Anahtar depoları, anahtarlar ve sertifikalar
Java Anahtar Depoları (.jks veya .keystore), sertifika ve özel anahtarların depolandığı ikili dosyalarıdı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 (örneğin, ad ve konum) içerir.
Aşağıda, bilmeniz gereken farklı anahtar türleri verilmiştir:
- Uygulama imzalama anahtarı: Kullanıcının cihazına yüklenen APK'ları imzalamak için kullanılan anahtardır. 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ı: Google Play ile uygulama imzalama için uygulama paketini veya APK'yı 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ı oluşturmak için aşağıdaki yöntemlerden birini kullanabilirsiniz:
- Özelliği etkinleştirirken Google'ın uygulama imzalama anahtarını sizin için oluşturmasını seçerseniz uygulamanızı yayınlamak için imzalarken kullandığınız anahtar yükleme anahtarınız olarak belirlenir.
- Yeni veya mevcut uygulamanızı etkinleştirirken uygulama imzalama anahtarını Google'a sağlarsanız daha yüksek güvenlik için etkinleştirme 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ın güvenliğini sağlamak için uygulama imzalama anahtarınızın ve yükleme anahtarınızın farklı olduğundan emin olun.
API sağlayıcılarla çalışma
Uygulama imzalama anahtarınızı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 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 de diğer parmak izlerini hesaplayabilirsiniz.
Hata ayıklama derlemenizi imzalama
Android Studio, projenizi IDE'den çalıştırırken veya uygulamanızda hata ayıklama yaparken 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 projenizde hata ayıklama yaptığınızda IDE, $HOME/.android/debug.keystore
içinde hata ayıklama anahtar mağazasını ve sertifikayı otomatik olarak oluşturur ve anahtar mağazasını ve anahtar şifrelerini ayarlar.
Hata ayıklama sertifikası derleme araçları tarafından oluşturulduğu ve tasarım gereği güvenli olmadığı için çoğu uygulama mağazası (Google Play Store dahil) yayınlamak için hata ayıklama sertifikasıyla imzalanan uygulamaları kabul etmez.
Android Studio, hata ayıklama imzalama bilgilerinizi otomatik olarak bir imzalama yapılandırmasında depolar. Böylece, her hata ayıklama işleminde bu bilgileri girmeniz gerekmez. İmzalama yapılandırması, anahtar mağazası konumu, anahtar mağazası şifresi, anahtar adı ve anahtar şifresi dahil olmak üzere uygulamanızı imzalamak için gereken tüm bilgilerden oluşan bir nesnedir.
Hata ayıklama için uygulama oluşturma ve çalıştırma hakkında daha fazla bilgi için Uygulamanızı Oluşturma ve Çalıştırma başlıklı makaleyi inceleyin.
Hata ayıklama sertifikasının süresi doldu
Uygulamanızı hata ayıklama amacıyla imzalamak için kullanılan kendinden imzalı sertifikanın geçerlilik bitiş tarihi, oluşturulma tarihinden itibaren 30 yıldır. Sertifikanın süresi dolduğunda derleme hatası alırsınız.
Bu sorunu düzeltmek için aşağıdaki konumlardan birinde saklanan debug.keystore
dosyasını silmeniz yeterlidir:
- OS X ve Linux'te
~/.android/
- Windows XP'te
C:\Documents and Settings\user\.android\
- Windows Vista ve Windows 7, 8 ve 10'da
C:\Users\user\.android\
Uygulamanızın hata ayıklama sürümünü bir dahaki sefere oluşturup çalıştırdığınızda Android Studio yeni bir anahtar deposu ve hata ayıklama anahtarı yeniden oluşturur.
Uygulamanızı Google Play'de yayınlanmak üzere imzalama
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ınlamak için nasıl doğru şekilde 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 kullanışlı olan bir yükleme anahtarınız yoksa Android Studio'yu kullanarak aşağıdaki adımları uygulayarak bir anahtar oluşturabilirsiniz:
- Menü çubuğunda Derle > İmzalı Paket/APK Oluştur'u tıklayın.
- İmzalı Paket veya APK Oluştur iletişim kutusunda Android App Bundle veya APK'yi seçip İleri'yi tıklayın.
- Anahtar mağazası 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österilen bilgileri girin.
Şekil 2. Android Studio'da yeni bir yükleme anahtarı ve anahtar deposu oluşturun.
Anahtar mağazası
- Anahtar mağazası yolu: Anahtar mağazanızın oluşturulacağı konumu seçin.
Ayrıca, konum yolunun sonuna
.jks
uzantılı bir dosya adı eklenmelidir. - Şifre: Anahtar deponuz için güvenli bir şifre oluşturup onaylayın.
- Anahtar mağazası yolu: Anahtar mağazanızın oluşturulacağı 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, anahtar deposu şifrenizle aynı olmalıdır. (Daha fazla bilgi için lütfen bilinen soruna bakın)
- Geçerlilik (yıl): Anahtarınızın geçerli olacağı süreyi yıl cinsinden 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ın oluşturulması için kendinizle ilgili bazı bilgileri girin. Bu bilgiler uygulamanızda gösterilmez ancak APK'nın bir parçası olarak sertifikanıza dahil edilir.
Formu doldurduktan sonra Tamam'ı tıklayın.
Uygulamanızı yükleme anahtarınızla derleyip imzalamak istiyorsanız Uygulamanızı yükleme anahtarınızla imzalama başlıklı bölüme geçin. Yalnızca anahtarı ve anahtar deposunu oluşturmak istiyorsanız İptal'i tıklayın.
Uygulamanızı anahtarınızla imzalama
Yükleme anahtarınız varsa uygulamanızı imzalamak için bu anahtarı kullanın. Uygulamanız mevcut bir uygulama imzalama anahtarıyla imzalanıp Google Play mağazasında yayınlandıysa uygulamanızı imzalamak için bu anahtarı kullanın. Daha sonra, uygulamanızdaki sonraki güncellemeleri imzalamak ve yüklemek için Google Play'de ayrı bir yükleme anahtarı oluşturabilir ve kaydedebilirsiniz.
Android Studio'yu kullanarak uygulamanızı imzalamak için aşağıdaki adımları uygulayın:
- Şu anda İmzalanmış Paket veya APK Oluştur iletişim kutusu açık değilse Derle > İmzalı Paket/APK Oluştur'u tıklayın.
- İmzalanmış Paket veya APK Oluştur iletişim kutusunda Android App Bundle veya APK'yi seçip İleri'yi tıklayın.
- Açılır menüden bir modül seçin.
Anahtar deponuzun yolunu, anahtarınızın takma adını belirtin ve her ikisinin de şifrelerini girin. Yükleme anahtar ambarınızı ve anahtarınızı henüz hazırlamadıysanız önce Yükleme anahtarı ve anahtar ambarı oluşturun, ardından bu adımı tamamlamak için geri dönün.
Şekil 3. Uygulamanızı yükleme anahtarınızla imzalayın.
İleri'yi tıklayın.
Bir sonraki pencerede (Şekil 4'te gösterilmiştir), imzalanan uygulamanız için bir hedef klasör seçin, derleme türünü seçin, varsa ürün türlerini seçin.
Bir APK oluşturup imzalıyorsanız uygulamanızın desteklemesini istediğiniz İmza Sürümlerini seçmeniz gerekir. Daha fazla bilgi için uygulama imzalama şemaları hakkındaki makaleyi inceleyin.
Oluştur'u tıklayın.
![](https://developer.android.google.cn/static/studio/images/publish/generate_signed_bundle_popup-2x.png?authuser=0&hl=tr)
Şekil 5. Uygulama paketinizi analiz etmek veya bulmak için pop-up'taki bağlantıyı tıklayın.
Android Studio, imzalanan uygulamanızı oluşturmayı tamamladıktan sonra, Şekil 5'te gösterildiği gibi pop-up bildirimde uygun seçeneği tıklayarak uygulamanızı bulabilir veya analiz edebilirsiniz.
Artık uygulamanızı Play Uygulama İmzalama'ya kaydetmeye ve uygulamanızı yayınlanmak üzere yüklemeye hazırsınız. Uygulama yayınlama sürecinde yeniyseniz Lansman'a genel bakış başlıklı makaleyi okumanızı öneririz. Aksi takdirde, Uygulamanızı Play Console'a yükleme ile ilgili sayfaya gidin.
Play Uygulama İmzalama'yı kullanma
Bu sayfanın önceki bölümlerinde açıklandığı gibi, uygulamanızı Google Play üzerinden dağıtım için imzalamak üzere Play Uygulama İmzalama'yı yapılandırmanız gerekir (Ağustos 2021'den önce oluşturulan ve kendi kendine imzalanan APK'ları dağıtmaya devam edebilecek uygulamalar hariç). Uygulamanızın henüz Google Play'de yayınlanıp yayınlanmadığına veya uygulamanızın halihazırda imzalanmış olup olmadığına ve mevcut bir uygulama imzalama anahtarı kullanılarak Ağustos 2021'den önce yayınlanıp yayınlanmadığına bağlı olarak uygulamanız için uygulamanız gereken adımlar değişir.
Yeni bir uygulama yapılandırın
Henüz Google Play'de yayınlanmamış bir uygulamanın imzalamasını yapılandırmak için aşağıdaki adımları uygulayın:
- Henüz yapmadıysanız bir yükleme anahtarı oluşturun ve bu anahtarı kullanarak uygulamanızı imzalayın.
- Play Console hesabınızda oturum açın.
- Yeni 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ından uygulama imzalamayı aşağıdaki gibi yapılandırın:
- Google Play'in uygulama imzalama anahtarı oluşturmasını ve uygulamanızı imzalarken bunu 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 kullanılmalıdır.
- Geliştirici hesabınızdaki başka bir uygulama ile aynı anahtarı kullanmak için Uygulama imzalama anahtarını değiştirin > Bu hesaptaki başka bir uygulamayla aynı anahtarı kullan'ı, ardından bir uygulamayı seçip Devam'ı tıklayın.
- Google'ın uygulamanızı imzalarken sizin imzalama anahtarınızı kullanmasını istiyorsanız Uygulama imzalama anahtarını değiştirin'i seçtikten sonra özel anahtarı ve genel sertifikasını güvenli bir şekilde yükleyebileceğiniz Dışa aktar ve yükle seçeneklerinden birini belirleyin.
Yükleme anahtarınızı kullanarak imzaladığınız uygulamayı bulmak ve yüklemek için Uygulama Paketleri adlı bölümde Dosyalara göz at'ı tıklayın. Uygulamanızı yayınlama hakkında daha fazla bilgi için Sürüm hazırlama ve kullanıma sunma başlıklı makaleyi inceleyin. Play Uygulama İmzalama'yı yapılandırdıktan sonra uygulamanızı yayınladığınızda Google Play, uygulamanızın imzalama anahtarını sizin için oluşturur (mevcut bir anahtar yüklemediğiniz sürece) ve yönetir. Uygulamanızın sonraki güncellemelerini Google Play'e yüklemeden önce uygulamanızın yükleme anahtarını kullanarak imzalamanız yeterlidir.
Uygulamanız için yeni bir yükleme anahtarı oluşturmanız gerekiyorsa Kayıp veya güvenliği ihlal edilmiş özel yükleme anahtarını sıfırlama başlıklı bölüme gidin.
Mevcut bir uygulamayı kaydetme
Google Play'de yayında olan bir uygulamayı, mevcut bir uygulama imzalama anahtarını kullanarak güncelliyorsanız Play Uygulama İmzalama'ya kaydolmak için aşağıdaki adımları uygulayabilirsiniz:
- Play Console hesabınızda oturum açıp 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 tanımlayan seçeneği belirleyin ve gösterilen talimatları uygulayın. Örneğin, imzalama anahtarınız için Java KeyStore kullanıyorsanız Java KeyStore'dan yeni bir uygulama imzalama anahtarı yükle'yi seçip talimatları uygulayarak PEPK aracını indirip çalıştırın ve şifrelenmiş anahtarınızla oluşturulan dosyayı yükleyin.
- Kaydol'u tıklayın.
Artık uygulamanızın imzalama ve yükleme sertifikalarının ayrıntılarını içeren bir sayfa göreceksiniz. Google Play artık uygulamanızı kullanıcılara dağıtırken mevcut anahtarınızla imzalar. Bununla birlikte, Play Uygulama İmzalama'nın en önemli avantajlarından biri, Google Play'e yüklediğiniz yapıyı imzalamak için kullandığınız anahtarı, Google Play'in uygulamanızı kullanıcılara dağıtmak için imzalamak üzere kullandığı anahtardan ayırabilme olanağıdır. Bu nedenle, ayrı bir yükleme anahtarı oluşturmak ve kaydetmek için bir sonraki bölümdeki adımları uygulayabilirsiniz.
Yükleme sertifikası oluşturma ve kaydetme
Yükleme anahtarıyla imzalanmamış bir uygulama yayınlıyorsanız Google Play Console, uygulamanın gelecekteki güncellemeleri için bir yükleme anahtarı kaydetme seçeneği sunar. Bu isteğe bağlı bir adım olsa da, uygulamanızı yayınlarken, Google Play'in uygulamanızı kullanıcılara dağıtmak için kullandığı anahtardan farklı bir anahtar kullanmanız önerilir. Bu sayede Google, imzalama anahtarınızı güvende tutar ve kaybolan veya güvenliği ihlal edilen özel yükleme anahtarını sıfırlama seçeneğiniz olur. Bu bölümde, yükleme anahtarı oluşturma, bu anahtardan yükleme sertifikası oluşturma ve uygulamanızın gelecekteki güncellemeleri için bu sertifikayı Google Play'e kaydetme işlemleri 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 imzalanan yeni bir uygulama yayınladığınızda ve bu uygulamayı Play Uygulama İmzalama'ya kaydettiğinizde.
- Play Uygulama İmzalama'ya zaten kaydolmuş ancak imzalama anahtarı kullanılarak imzalanmış mevcut bir uygulamayı yayınlamak üzere olduğunuzda
Play Uygulama İmzalama'ya zaten kaydolmuş olan mevcut bir uygulamada güncelleme yayınlamıyorsanız ve yükleme sertifikası kaydetmek istiyorsanız aşağıdaki adımları uygulayın ve kaybedilen veya güvenliği ihlal edilen gizli yükleme anahtarını sıfırlama ile ilgili bölüme geçin.
Henüz yapmadıysanız bir yükleme anahtarı ve anahtar mağazası oluşturun.
Yükleme anahtarınızı ve anahtar deponuzu oluşturduktan sonra, aşağıdaki komutu kullanarak keytool
ile yükleme anahtarınızdan bir genel sertifika oluşturmanız gerekir:
$ keytool -export -rfc -keystore your-upload-keystore.jks -alias upload-alias -file output_upload_certificate.pem
Yükleme sertifikanız hazır olduğunda Play Console'da istendiğinde veya yükleme anahtarınızı sıfırladığınızda bu sertifikayı 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 kullanmak istediğiniz veya imzalama anahtarınızın güvenliği ihlal edildiği için. Ancak kullanıcılar uygulamanızı yalnızca güncelleme aynı imzalama anahtarıyla imzalanmışsa güncelleyebileceğinden, daha önce yayınlanmış bir uygulamanın imzalama anahtarını değiştirmek zordur.
Uygulamanızı Google Play'de yayınlarsanız Play Console üzerinden yayınlanan uygulamanızın imzalama anahtarını yükseltebilirsiniz. Yeni anahtarınız, Android 13 ve sonraki sürümlerdeki yüklemeleri ve uygulama güncellemelerini imzalamak için kullanılır. Eski uygulama imzalama anahtarınız ise Android'in önceki sürümlerindeki kullanıcıların güncellemelerini imzalamak için kullanılır.
Daha fazla bilgi edinmek için Uygulama imzalama anahtarınızı yeni sürüme geçirme başlıklı makaleyi inceleyin.
Kayıp veya güvenliği ihlal edilmiş özel yükleme anahtarını sıfırlama
Özel yükleme anahtarınızı kaybettiyseniz veya anahtarın güvenliği ihlal edildiyse yeni bir anahtar oluşturabilir ve Play Console'da yükleme anahtarı sıfırlama isteğinde bulunabilirsiniz.
Derleme sürecini, uygulamanızı otomatik olarak imzalayacak şekilde yapılandırma
Android Studio'da, bir imzalama yapılandırması oluşturup bunu yayınlama derleme türünüze atayarak projenizi, derleme işlemi sırasında uygulamanızın yayınlanacak sürümünü otomatik olarak imzalayacak şekilde yapılandırabilirsiniz. İmzalama yapılandırması; anahtar deposu konumu, anahtar deposu şifresi, anahtar takma adı ve anahtar şifresinden oluşur. Android Studio'yu kullanarak bir imzalama yapılandırması oluşturup bunu yayınlama derleme türünüze atamak için aşağıdaki adımları uygulayı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.
- İmza sekmesini, ardından Ekle'yi
tıklayın.
-
Anahtar mağazası dosyanızı seçin, bu imzalama yapılandırması için bir ad girin (birden fazla oluşturabileceğiniz için) ve gerekli bilgileri girin.
Şekil 7. Yeni bir imzalama yapılandırması oluşturma penceresi.
- Derleme Türleri sekmesini tıklayın.
- Sürüm derlemesini tıklayın.
-
İmza Yapılandırması bölümünde, yeni oluşturduğunuz imzalama yapılandırmasını seçin.
Şekil 8. Android Studio'da bir imzalama yapılandırması seçin.
- Tamam'ı tıklayın.
Artık Android Studio'da Derle > Paket Derle / APK Derle bölümünde bir seçenek belirleyerek sürüm derleme türünüzü her derlediğinizde IDE, belirttiğiniz imzalama yapılandırmasını kullanarak uygulamanızı otomatik olarak imzalar. İmzalı APK'nızı veya uygulama paketinizi, derlemekte olduğunuz modülün proje dizinindeki build/outputs/
dizininde bulabilirsiniz.
İmzalama yapılandırması oluşturduğunuzda imzalama bilgileriniz Gradle derleme dosyalarınıza düz metin olarak eklenir. Ekip halinde çalışıyor veya kodunuzu herkese açık olarak paylaşıyorsanız imzalama bilgilerinizi derleme dosyalarından kaldırıp ayrı olarak saklayarak güvende tutmanız gerekir. İmzalama bilgilerinizi derleme dosyalarınızdan nasıl kaldıracağınız hakkında daha fazla bilgiyi Derleme dosyalarınızdan imzalama bilgilerini kaldırma başlıklı makalede 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 aromasını farklı şekilde imzalama
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.
- İmza sekmesini, ardından Ekle'yi
tıklayın.
-
Anahtar mağazası dosyanızı seçin, bu imzalama yapılandırması için bir ad girin (birden fazla oluşturabileceğiniz için) ve gerekli bilgileri girin.
Şekil 10. Yeni bir imzalama yapılandırması oluşturma penceresi.
- Tüm imzalama yapılandırmalarınızı oluşturana kadar gerektiğinde 3. ve 4. adımları tekrarlayın.
- Tatlar sekmesini tıklayın.
- Yapılandırmak istediğiniz sürümü tıklayın, ardından İmza Yapılandırması açılır menüsünden uygun imzalama yapılandırmasını seçin.
Şekil 11. İmzalama ayarlarını ürün çeşidine göre yapılandırın.
Diğer ek ürün varyantlarını 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 başlıklı makaleyi inceleyin.
İmza raporu çalıştırma
Uygulamanızın her bir varyantının imzalama bilgilerini almak için Android Studio'da GradlesigningReport
görevini çalıştırın:
- Gradle araç penceresini açmak için Görünüm > Araç Pencereleri > Gradle'yi seçin.
- Raporu çalıştırmak için Uygulamanız > Görevler > android > signingReport'ı seçin.
Kendi imzalama anahtarınızı yönetme
Play Uygulama İmzalama'ya kaydolmamayı tercih ederseniz (yalnızca Ağustos 2021'den önce oluşturulmuş uygulamalar için) kendi uygulama imzalama anahtarınızı ve anahtar deponuzu yönetebilirsiniz. Anahtarı ve anahtar deposunu güvende tutma sorumluluğunuzun size ait olduğunu unutmayın. Ayrıca uygulamanız Android App Bundle'ları, Play Feature Delivery'yi ve Play Asset Delivery'yi destekleyemez.
Kendi anahtarınızı ve anahtar deponuzu oluşturmaya hazır olduğunuzda öncelikle anahtar deponuz için güçlü bir şifre ve anahtar deposunda depolanan her özel anahtar için ayrı bir güçlü şifre seçtiğinizden emin olun. Anahtar deponuzu güvenli bir yerde saklamanız gerekir. 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üncellemeleri 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 imzalar ve imzalanan APK'yı dağıtım için doğrudan Google Play Store'a yüklersiniz (Şekil 12'de gösterildiği gibi).
Şekil 12. Kendi uygulama imzalama anahtarınızı yönetirken uygulama imzalama
Play Uygulama İmzalama'yı kullandığınızda Google, imzalama anahtarınızı güvende tutar, uygulamalarınızın doğru şekilde imzalanmasını ve kullanım süreleri boyunca güncelleme almasını sağlar. Ancak uygulama imzalama anahtarınızı kendiniz yönetmeye karar verirseniz dikkat etmeniz gereken birkaç nokta vardır.
İmzalamayla ilgili dikkat edilmesi gereken noktalar
Uygulamanızı, beklenen kullanım ömrü boyunca aynı sertifikayla imzalamanız gerekir. Bunu yapmanı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. Sistem, sertifikalar eşleşirse 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, aynı sertifika ile imzalanan APK'ların, uygulamanın isteği üzerine aynı işlemde çalışmasına izin verir. Böylece sistem, APK'ları tek bir uygulama olarak değerlendirir. Bu sayede uygulamanızı modüller halinde dağıtabilir ve kullanıcılar modüllerin her birini bağımsız olarak güncelleyebilir.
- İzinler aracılığıyla kod/veri paylaşımı: Android, imza tabanlı izin yaptırımı sağlar. Böylece bir uygulama, belirli bir sertifikayla imzalanmış başka bir uygulamaya işlev sunabilir. Birden fazla APK'yı aynı sertifikayla imzalayarak ve imza tabanlı izin kontrollerini kullanarak uygulamalarınız kod ve verileri güvenli bir şekilde paylaşabilir.
Bir uygulamanın yükseltmelerini desteklemeyi planlıyorsanız uygulama imzalama anahtarınızın, söz konusu uygulamanın beklenen kullanım süresini aşan bir geçerlilik süresine sahip olduğundan emin olun. 25 yıl veya daha uzun bir geçerlilik süresi önerilir. Anahtarınızın geçerlilik süresi sona erdiğinde kullanıcılar artık uygulamanızın yeni sürümlerine sorunsuz bir şekilde yükseltemeyecektir.
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 yükseltebilmesini sağlamak için bu koşulu uygular.
Anahtarınızı güvende tutma
Uygulama imzalama anahtarınızı ve anahtar deponuzu kendiniz yönetmeyi ve güvende tutmayı seçerseniz (Play Uygulama İmzalama'ya kaydolmak yerine) uygulama imzalama anahtarınızın güvenliğini sağlamak hem sizin hem de kullanıcı için kritik öneme sahiptir. Bir kullanıcının anahtarınızı kullanmasına izin verirseniz veya anahtar deponuzu ve şifrelerinizi üçüncü tarafların bulup kullanabileceği, güvenli olmayan bir yerde bırakırsanız içerik üretme kimliğiniz ve kullanıcının güveni tehlikeye girer.
Bir üçüncü taraf, bilginiz veya izniniz olmadan uygulama imzalama anahtarınızı ele geçirirse kötü niyetle orijinal uygulamalarınızın yerini alan veya bunları bozan uygulamaları imzalayıp dağıtabilir. Bu tür kişiler, kimliğinizi kullanarak diğer uygulamalara veya sisteme saldıran ya da kullanıcı verilerini bozan ya da çalan uygulamalar da imzalayıp dağıtabilir.
Uygulamanızın gelecekteki tüm sürümlerini imzalamak için özel anahtarınız gerekir. Anahtarınızı kaybederseniz veya yanlış yere koyarsanız mevcut uygulamanız için güncelleme yayınlayamazsınız. Daha önce oluşturulmuş bir anahtarı yeniden oluşturamazsınız.
Geliştirici kuruluş olarak itibarınız, uygulama imzalama anahtarınızın süresinin sona ermesine kadar her zaman doğru şekilde güvenliğini sağlamanıza bağlıdır. Anahtarınızı güvende tutmak için 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 kullandırtmayın 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 makul önlemleri alırsanız anahtarınız güvende kalır.
Derleme dosyalarınızdan imzalama bilgilerini kaldırma
Bir imzalama yapılandırması oluşturduğunuzda Android Studio, imzalama bilgilerinizi modülün build.gradle
dosyalarına düz metin olarak ekler. Bir ekiple çalışıyorsanız veya kodunuzu açık kaynak olarak kullanıyorsanız bu hassas bilgileri, başkaları tarafından kolayca erişilemeyecek şekilde derleme dosyalarından taşımanız gerekir. Bunun için güvenli bilgileri depolamak üzere ayrı bir properties dosyası oluşturmanız ve derleme dosyalarınızda bu dosyaya aşağıdaki şekilde başvurmanız gerekir:
- İmzalama yapılandırması oluşturun ve bu yapılandırmayı bir veya daha fazla derleme türüne atayın. Bu talimatlarda, yukarıdaki Uygulamanızı otomatik olarak imzalamak için derleme sürecini 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ı oluşturduğunuz varsayılmaktadır.
- Projenizin kök dizininde
keystore.properties
adlı bir dosya oluşturun. Bu dosya, aşağıdaki gibi imzalama bilgilerinizi 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ükleyen kod ekleyin.Groovy
... // 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 (ör. projenin kök klasörü yerine modül klasöründe veya sürekli entegrasyon aracı kullanıyorsanız derleme sunucunuzda) depolayabilirsiniz. Bu durumda,keystorePropertiesFile
dosyasının gerçek konumunu kullanarakkeystore.properties
dosyasını doğru şekilde başlatmak için yukarıdaki kodu değiştirmeniz gerekir. keystoreProperties['propertyName']
söz dizimini kullanarakkeystoreProperties
bölümünde depolanan mülklere referans verebilirsiniz. Modülünüzünbuild.gradle
dosyasınınsigningConfigs
bloğunu, bu söz dizimini kullanarakkeystoreProperties
içinde depolanan imzalama bilgilerine referans verecek şekilde değiştirin.Groovy
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 } } ... }
- Derleme Varyantları araç penceresini açın ve sürüm derleme türünün seçildiğinden emin olun.
- Sürüm derlemenizin APK'sını veya uygulama paketini oluşturmak için Derle > Paket/APK Derle bölümünde bir seçenek belirleyin.
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 bunları kaynak denetimine dahil edebilir veya ortak bir kod tabanına yükleyebilirsiniz. keystore.properties
dosyasını güvenli bir şekilde tuttuğunuzdan emin olun. Buna, kaynak denetim sisteminizden kaldırmak da dahildir.