Aracılığıyla paylaş


Android için el ile kod imzalama

Bu makalede, Android (APK) için el ile kod imzalama hakkında bilgi edineceksiniz. Paketleme projenizi oluşturup derlerken platformlardan biri olarak Android'i seçtiyseniz Android için uygulamanızı imzalamanız gerekir.

Önemli

Bunun yerine, Google Play dağıtımı için bir AAB uygulamasını imzalamak isterseniz Uygulamanızı imzalama bölümüne bakın.

Bilgisayarınızı hazırlama

Başlamak için aşağıdaki bilgiler gerekir:

Önkoşullar

  • Karma anahtarı oluşturmak için uygulama adı.
  • İmza süreci için en son APK dosyası.

Anahtar oluşturma

Not

Uygulama kaydı oluştururken zaten anahtarlar ve imza karması oluşturduysanız APK paketini imzalama'ya geçin.

Uygulama paketini imzalamaya yönelik bir sertifika oluşturmak için, keytool.exe'yi kullanacağız ("Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe" konumundan Android Studio'yu kurduktan sonra kullanılabilir). Keytool, şifreleme anahtarlarının bir tuş deposunu (veritabanı), X.509 sertifika zincirlerini ve güvenilen sertifikaları yönetmek için kullanılır.

Bir anahtar oluşturmak için, komut istemi açın ve aşağıdaki komutu çalıştırın:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parametreler:

  • genkey - anahtar oluşturmaya yönelik komut.
  • alias - Üretilen anahtarları içeren anahtar deposu girdisine başvurmak için gelecekte kullanılacak diğer adı belirtir.
  • keyalg - anahtar algoritması adı.
  • keystore - kullanmakta olduğunuz tuş deposunun adı.
  • keysize - oluşturulacak her anahtarın boyutu.
  • validity - anahtarın gün sayısı olarak geçerliliği.

Örnek:

  • Key Vault hazırlandığı zaman, PATH_TO_KEYSTORE .pfx uzantısına sahip olmalıdır.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

  • El ile imzalama için hazırlanırken, PATH_TO_KEYSTORE öğesi .jks uzantısına sahip olmalıdır.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

Yukarıdaki örnekteki parametreleri kullanarak keytool komutuyla bir ekran görüntüsü.

İmza karması oluşturma

Not

Uygulama kaydı oluştururken zaten anahtarlar ve imza karması oluşturduysanız APK paketini imzalama'ya geçin.

Anahtar oluşturulduktan sonra, anahtar deposu sertifikasını dışarı aktarmak için exportcert komutu keytool'da kullanılır.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Parametreler:

  • exportcert - anahtar deposundan diğer adla ilişkilendirilmiş sertifikayı okur ve cert_file dosyasında depolar. Hiçbir dosya belirtilmediğinde, sertifika stdout'a gönderilir.
  • alias - anahtarlar daha önce oluşturulurken kullanılan diğer ad.
  • keystore - kullanmakta olduğunuz tuş deposunun adı.
  • openssl - Android için SHA1 anahtarını oluşturur.

Uygulamayı kaydederken, oluşturulan imza karmasını Yönlendirme URI'sine ekleyin.

SHA1 onaltılığını el ile Base64 kodlu imza karmasına dönüştürme

İmza karmanız Azure Portal'da doğru şekilde kodlanmamışsa veya kabul edilemez ise aşağıdaki hatayı görebilirsiniz:

"İmza karması, base64 ile kodlanmış SHA1 olmalıdır."

Bu hata görüntülendiğinde imza karmasını aşağıdaki adımları kullanarak oluşturmaya çalışın:

  1. Ayrıntılı modda sertifika bilgilerini listelemek için keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE öğesini çalıştırın.
  2. Çıktıdan Sertifika parmak izleri bölümünün altındaki SHA1 değerini kopyalayın. Yalnızca onaltılık değeri kopyaladığınızdan emin olun.
    Örneğin: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Kopyalanan sertifika parmak izi onaltılık değerini Base64 ile kodlanmış değere dönüştürmek için kullanılabilir herhangi bir "Onaltılıdan Base64'e" dönüştürücüsünü kullanın.
    Base64 ile kodlanmış değer örneği: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Uygulamayı kaydederken Azure portalında oluşturulan Base64 kodlu değeri İmza karması olarak kopyalayın.

APK paketini imzalama

APK paketini imzalamak için apksigner aracını kullanacağız. Bu araç, APK'leri imzalayabilmenizi ve APK paket imzasının APK'ler tarafından desteklenen tüm Android platformlarda başarıyla doğrulandığından emin olmanızı sağlar.

apksigner aracınızı bulma

  1. Android Studio'daki Android SDK yolunu denetleyin.

  2. Tool>SDK Manager>Android SDK Location'ı seçin.

    iOS kullanılıyorsa buildTools Sürümü dizininden apksigner dosyasını kontrol edin:

    SDK dizinine gidin >build-tools>buildToolsVersion>lib ve apksigner.jar dosyasını kontrol edin

apksigner dosyasını kullanma

apksigner'ı kullanarak paketi imzalamak için aşağıdaki komutu çalıştırın:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parametreler:

  • ks - tuş deposu yolu.
  • ks-key-alias - APK dosyasının anahtar diğer ad yolu.

İstendiğinde, parolayı girin.

Daha fazla bilgi: Android Studio komut satırı araçları: apksigner

Uygulamayı dağıtma

Paketi App Center gibi bir dağıtım hizmetinde barındırabilirsiniz. Microsoft Intune'u kullanarak dağıtmak için bkz. Microsoft Intune'e Android iş kolu uygulaması ekleme. Bir uygulamaya Intune uygulama koruma hizmetine erişim verme hakkında bilgi edinmek için bkz. Uygulamanıza Intune uygulama koruma hizmetine erişim izni verme.

Ayrıca bkz.