Huawei App Signing — Uygulama İmzalama ve Gradle SigningConfig Ayarları

Ubeyde Akgül
Huawei Developers - Türkiye
8 min readJul 22, 2020

Android uygulamalarının güvenilir bir kaynaktan sağlandığını doğrulamak ve uygulama güncellemelerini güvenli bir şekilde gerçekleştirebilmek için uygulama imzalama işlemi gerçekleştirilir. Uygulamalar genellikle kendinden imzalı sertifikalar kullanır. Geliştiriciler de sertifikanın özel anahtarını tutar. Her özel anahtarın ilişkili olduğu bir ortak anahtar sertifikası vardır. Cihazlar ve hizmetler, bir uygulamanın güvenilir bir kaynaktan olup olmadığını kontrol etmek için ortak imza anahtar sertifikasını kullanır. Android, uygulamanın yazarını tanımlamak için bu sertifikayı kullanır. Uygulamanın kurulu olduğu cihazın güncellemeyi kabul etmesi için güncel uygulama imzasının, yüklü uygulama imzasıyla eşleşmesi gerekir. Yalnızca bu durumda uygulamanın güncellemesi gerçekleştirilebilir.

AppGallery Connect’in uygulama imza anahtarınızı düzgün bir şekilde yönetebilmesi, koruyabilmesi ve dağıtım aşamasında uygulamanızı imzalamak üzere imza anahtarınızı kullanabilmesi için Huawei, AppSigning servisini sunuyor. Servis imza anahtarını güvenli bir şekilde saklıyor ve anahtar kaybı veya hırsızlığı durumunda bile içeriğinizi koruyor.

AppSigning hizmetinin kullanımı tercih edilmemesi durumunda; anahtarınızın kaybolması, unutulması veya çalınması halinde uygulamanızı güncelleyememe riski ile karşı karşıya kalabilirsiniz.

Key’i unutulmuş bir uygulamayı update edebilmeniz için güncellenen uygulamayı yeni bir paket adı ile yayınlamanız gerecektir.

İmzalama işlemini manuel gerçekleştirmek :

İmza Sertifikası Oluşturma ( .jks / .keystore dosyası ) :

Android Studio’da uygulamanıza özel SHA256 parmak izi oluşturmak için kullanılacak yeni bir imza dosyası oluşturmalısınız. Bunun için Menü çubuğu üzerinden Build>Generate Signed Bundle/APK ya tıklayın veAPK seçeneği ile ilerleyin.

Mevcut bir imza dosyanız varsa, Choose existing seçeneğini ile, imza dosyasını seçin ve bunun için Key store password, Key alias ve Key password girişlerini yaparak ilerleyin.

Mevcut İmza dosyanız yoksa Create New ile yeni oluşturarak ilerleyin.

Key store path, Password, Key Alias ve diğer bilgileri belirleyin.

create new key store information

İmza dosyasını başarıyla oluşturduktan sonra, bilgileri Generate Signed Bundle or APK sayfasında görütülenecektir, ilerleyin.

Görüntülenen sayfada, İmza Sürümleri’nin yanındaki V1 ve V2'yi seçin, build variant olarak release seçerek imza sertifikası oluşturmayı tamamlayın.

İmza Sertifikası Parmak İzi Oluşturma ( SHA256 ) : Windows

Komut penceresini açın ve JDK/bin dizinine erişin.

```cd C:\Program Files\Java\jdk1.8\bin

İmza dosyası oluşturulurken belirlenen Key store path, Password, and Key Alias bilgileri ile aşağıdaki kodu çalıştırın. 1. (bold yazılmış bilgileri kendi değerlerinizle değiştirerek).

```Keytool -list -v -keystore yourKeystoreFilePath -alias yourKeyAlias -storepass yourStorePassword -keypass yourKeyPassword

Görüntülenen sonuçtan SHA256 parmak izini alın.

Elde Edilen SHA256 parmak izi sertifikasını AppGallery Connect’e ekleme :

1. AppGallery Connect üzerinden My projects > Project Setting > Convention > App information bölümüne gidin, SHA256 sertifika parmak izinin yanındaki artı simgesine tıklayın,

Kopyalanan SHA256 sertifika parmak izini yapıştırın ve ok simgesi ile kaydedin.

Kayıt tamamlandığında, imza sertifikası parmak izi hemen yürürlüğe girecektir.

Ardından projeye maven kütüphaneleri ve gerekli pluginleri dahil ettikten sonra proje imzasını yapılandırabilirsiniz.

Oluşturulan hmsdemo.jks imza dosyasını uygulama klasörüne kopyalayın ve app scope taki build.gradle dosyanızı açın (uygulama düzeyindeki modülünüzü).

Build.gradle dosyasındaki android scope içerisine imza yapılandırma bilgileri ekleyin. Release ve debug tipteki build varyantlarında bu imza konfigürasyonunun kullanılacağını belirtin.

İmzalama işlemini Huawei AppGallery Connect’in AppSigning servisi ile gerçekleştirmek :

AppSigning hizmetini kullanmak için bir Huawei geliştirici hesabı sahibi olmanız, Hizmet Sözleşmesi ni ( Hizmet sözleşmesi TR ) kabul etmeniz ve uygulamanızın uygulama imzasını kaydetmeniz gerekir (bir seferde bir uygulama için bir imza). Bu aşamaları geçtikten sonra .abb uygulama paketi dosyanızı AppGallery Connect’e gönderebilirsiniz.

AppSigning Servisi ile yeni bir uygulamanın imzalama süreci :

İmza için AppGallery Connect tarafından sağlanan uygulama imza anahtarını kullanmanız önerilir. Ayrıca kendiniz bir uygulama imza anahtarı da oluşturabilirsiniz. Aşağıdaki görselde, AppGallery Connect tarafından sağlanan uygulama imza anahtarını kullanarak bir uygulamayı imzalama işlemi gösterilmektedir

1. Geliştirici, AppGallery Connect’te bir yükleme anahtarı sertifikası gönderir

2. Geliştirici, yükleme anahtarı kullanılarak paketlenmiş bir .abb uygulama paketi dosyası yükler.

3. AppGallery Connect, uygulamanın yükleme anahtarını doğrular.

4. AppGallery Connect, uygulamayı tekrar imzalamak için AppGallery Connect tarafından sağlanan uygulama imza anahtarını kullanır.

5. AppGallery Connect yeniden imzalanan uygulamayı kullanıcılara dağıtır.

AppSigning Servisi ile yayımlanan bir uygulamanın imzalama süreci :

Uygulama imzalamak için yayınlanan uygulamanın imza anahtarını kullanın.

1. Geliştirici, AppGallery Connect’e bir yükleme anahtarı sertifikası (isteğe bağlı) ve bir uygulama imza anahtarı yükler.

2. Geliştirici, yükleme anahtarı kullanılarak paketlenmiş bir .abb uygulama paketi dosyası yükler.

3. AppGallery Connect, uygulamanın yükleme anahtarını doğrular.

a) Geliştirici bir yükleme anahtarı göndermezse uygulama, uygulama imza anahtarı kullanılarak doğrulanır.

b) Geliştirici bir yükleme anahtarı gönderirse, uygulama yükleme anahtarı kullanılarak doğrulanır.

4. AppGallery Connect, uygulamayı tekrar imzalamak için geliştirici tarafından sağlanan uygulama imza anahtarını kullanır.

5. AppGallery Connect yeniden imzalanan uygulamayı kullanıcılara dağıtır.

İlk kez bir uygulama imzalamadan önce, Huawei AppGallery Connect uygulama imzalama Hizmet Sözleşmesi’ni imzalamanız gerekiyor

1. AppGallery Connect ‘te oturum açın ve Uygulamalarım’ı seçin .
2. İmzalamanız gereken uygulamanın adını tıklayın. Ardından Distribute > Services > App signature a gidin .

3. Hizmet sözleşmesini okuyun ve kabul edin

AppSigning Servisi ile Yeni Bir Uygulama İmzalama :

1. AppGallery Connect te oturum açın ve Uygulamalarım’ı seçin.

2. İmzalamanız gereken uygulamanızın sayfasına ardından Distribute > Services > App signature a gidin.

3. Aşağıdaki gibi bir imza modu seçin:

● AppGallery Connect tarafından oluşturulan uygulama imzasını kullanmak için AppGallery Connect’in benim için uygulama imzası oluşturmasına ve yönetmesine izin ver’i seçin.

Bu modda, HUAWEI AppGallery uygulamanızın imza anahtarını oluşturur ve yönetir. Güncellenen uygulamayı imzalamak için uygulamanın yükleme anahtarını kullanmanız ve ardından güncellenen uygulama dosyasını AppGallery Connect’e göndermeniz gerekir. Bu mod önerilen bir yöntem.

Ayrıntılar için Yükleme Anahtarı Sertifikası Gönderme konusuna bakabilirsiniz

Not : AppGallery Connect’in uygulama imza anahtarınızı oluşturmasına ve yönetmesine izin verirseniz, orijinal sertifikayı .der biçiminde dışa aktaramazsınız

● Uygulama imzasını kendiniz kaydetmek için Export and upload the key and certificate seçeneğini seçin ve anahtarı ve sertifikayı yükleyin.

Ayrıntılar için Uygulama İmza Anahtarının Gönderilmesi ve Anahtar Sertifikalarının Yüklenmesi konusuna bakabilirsiniz.

Yayımlanan bir Uygulamayı İmzalama

1. AppGallery Connect te oturum açın ve Uygulamalarım’ı seçin.

2. İmzalamanız gereken uygulamanın adını tıklayın. Ardından Distribute > Services > App signature a gidin

3.Export and upload the key and certificate seçeneğini seçin.

Ayrıntılar için Uygulama İmza Anahtarının Gönderilmesi ve Anahtar Sertifikalarının Yüklenmesi konusuna bakabilirsiniz.

4. İmza sertifikasını kontrol edin ve anahtar sertifikasını yükleyin.

Yükleme Anahtarı Sertifikası Gönderme

2. Yeni bir yükleme anahtarı oluşturmak için Android’in uygulama imzalama yöntemini kullanabilirsiniz.

3. Oluşturulan ( .pem biçimindeki ) yükleme anahtarının sertifikasını vermek için aşağıdaki komutu çalıştırın. (bold yazılmış bilgileri kendi değerlerinizle değiştirerek).

```keytool -export -rfc -keystore your-upload-keystore.jks -alias your-upload-alias -file your-upload_certificate.pem

4. Oluşturulan anahtarı AppGallery Connect’e gönderin.

5. İmza sertifikasını kontrol edin ve anahtar sertifikasını yükleyin. AppGallery Connect’in benim için uygulama imzası oluşturmasına ve yönetmesine izin ver seçeneğini belirlerseniz, uygulama imzası sertifikası için sistem tarafından oluşturulan sertifika parmak izi, uygulama geliştirme sırasında yerel olarak oluşturulandan farklı olacaktır.

6. (Opsiyonel) Entegre edilecek hizmet SHA256 sertifika parmak izine bağlıysa, uygulama için aşağıdaki gibi yeni bir SHA256 sertifika parmak izi eklemeniz gerekir: Uygulama imzasının SHA256 sertifika parmak izini kopyalamak için tıklayın sertifikasını seçin, My projects > Project Setting > Convention > App information a gidin, SHA256 sertifika parmak izinin yanındaki artı simgesine tıklayın, kopyalanan SHA256 sertifika parmak izini yapıştırın ok simgesi ile kaydedin.

Uygulama İmza Anahtarını Gönderme ve Anahtar Sertifikalarını Yükleme

1. pepk.jar toolunu internet’ten kısa bir arama ile veya başka bir yasal kaynaktan edinin.

2. Mevcut özel ve genel anahtar sertifikalarını bir .zip dosyası olarak vermek için pepk.jar aracı nı kullanın.

3. .zip dosyasını AppGallery Connect’e yükleyin.

4. Yeni bir yükleme anahtarı oluşturmak için Android’in uygulama imzalama yöntemini kullanın.

5. Oluşturulan ( .pem biçimindeki ) yükleme anahtarının sertifikasını vermek için aşağıdaki komutu çalıştırın. (bold yazılmış bilgileri kendi değerlerinizle değiştirerek).

```$ keytool -export -rfc -keystore your-upload-keystore.jks -alias your-upload-alias -file your-upload_certificate.pem

6. Oluşturulan anahtarı AppGallery Connect’e gönderin.

Sağ üst köşedeki Submite tıklayın.

“Uygulama zaten uygulama imza planına eklenmiş.” Uyarısı görüntülendiğinde, işlem aşağıdaki şekilde gösterildiği gibi başarılı şekilde tamamlanmıştır.

İmza Anahtarı Güvenliğini Sağlama

HUAWEI AppGallery, imza anahtarınız için kapsamlı bir güvenlik barındırma çözümü sunar.

HUAWEI AppGallery tarafından oluşturulan ve yönetilen yükleme anahtarı, barındırılan imza anahtarı ve uygulama imza anahtarı şifrelenir ve HUAWEI AppGallery bulutundaki şifreleyicide saklanır. Şifreleyici üzerindeki düz metin anahtarının çalınması veya kaybolması gibi bir durum söz konusu değildir. Bir uygulama imzalandığında, HUAWEI AppGallery imzalanacak içeriği şifreleyiciye gönderir. Şifreleyici içeriği imzalar ve imzalama sonucunu döndürür.

Yükleme anahtarınız kaybolursa, yeni bir yükleme anahtarı oluşturabilir, uygulamanızı imzalamak için yeni anahtarı kullanabilir ve yeni anahtarı AppGallery Connect’e yükleyebilirsiniz. Bu durumda AppGallery Connect, yüklenen uygulamanın imzasını doğrulamak için yeni yükleme anahtarını kullanır.

Daha fazla ayrıntı için ilgili adresler :

App Signing Huawei Developer Page

Signing Certificate Fingerprint Huawei Developer Page

Configuring AppGallery Connect

HMSPreparation CodeLab

App Bundle Release on App Gallery

--

--