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:
- Android Studio yükleyin
- OpenSSL'i yükleme
- Apksigner aracını yükleyin
Ö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
İ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:
- Ayrıntılı modda sertifika bilgilerini listelemek için
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
öğesini çalıştırın. - Çı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
- 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=
- 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
Android Studio'daki Android SDK yolunu denetleyin.
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.