Merhabalar, bildiğiniz üzere Google Play Store Ağustos 2021 tarihi itibariyle mobil uygulamaları APK uzantısı yerine daha büyük sıkıştırma oranına sahip Android App Bundle (AAB) uzantısıyla kabul edeceğini duyurmuştu. Ancak geliştiricilerin Android App Bundle kullanabilmeleri için “Play Uygulama İmzalama” özelliğine kaydolması gerekmektedir. Sıfırdan bir uygulama oluşturduğunuzda aşağıdaki adımları yapmanıza gerek kalmayacaktır, direkt olarak Google Play Uygulama İmzalama’ya kaydol diyerek işlemi tamamlayabilirsiniz. Eğer marketteki mevcut sürümleriniz daha öncesinde birer APK olarak markete sunulduysa aşağıda yer alan “Google Play Uygulama İmzalama’ya Kaydolma” adımlarını gerçekleştirmeniz gerekmektedir.
Bu adımları gerçekleştirebilmek için uygulamanızın Java anahtar deposu (.jks) dosyası, jks içerisindeki keyAlias ve password bilgilerinin hazır bir şekilde elinizde olması gerekmektedir.
App Bundle’ ın APK’dan farkları nelerdir?
App Bundle (aab), Google tarafından önerilen bir uygulama uzantısıdır. App bundle sayesinde uygulama boyutları apk’ ya kıyasla daha küçük olmaktadır. Uygulama boyutu içerisindeki paketlere göre değişiklik gösterebileceği için burada net bir oran verilmesi doğru olmayacaktır ancak siz de uygulamanızı için bundle aldığınız zaman boyut değişimine şahit olacaksınız.
App bundle’ı Android Studio kullanarak APK ile aynı deneyimle üretebilirsiniz. Build -> Generate Signed Bundle / APK diyerek açılan pencerede ilk seçenek olan Android App Bundle ‘ı seçmeniz yeterlidir.
Flutter ile geliştirdiğiniz mobil uygulamalarda ise flutter build appbundle –release komutunu kullanmanız yeterli olacaktır.
Google Play Uygulama İmzalama’ya Kaydolma
Peki daha önceden APK uzantılı olarak yüklediğimiz bir mobil uygulama markette yayında ise ne yapmalıyız?
Yeni bir sürüm oluşturup paket çıkabilmek için Google Play Uygulama İmzalama’ya manuel olarak kaydolmamız gerekmektedir. Bunun için üretim sürümü oluşturma ekranına gelip (Üretim -> Yeni sürüm oluştur), karşımıza çıkacak olan aşağıdaki uyarıdaki “Kaydol” bağlantısına gitmeliyiz.
Bu noktada karşımıza 3 farklı seçenek çıkmaktadır:
1) Android Studio’dan bir anahtarı dışa aktarıp yükle
2) Java anahtar deposundan bir anahtar dışa aktarıp yükle
3) Bir anahtar dışa aktarıp yükle (Java anahtar deposu kullanmadan)
Biz elimizde mevcut olarak bulunan .jks dosyasını kullanarak imzalama işlemini gerçekleştireceğiz. Bunun için ikinci seçenek olan “Java anahtar deposundan bir anahtar dışa aktarıp yükle”yi seçerek ilerleyelim.
Bu ekranda bize PEPK aracı indirebileceğimiz bir bağlantı veriliyor. Bu bağlantı yardımıyla yaklaşık 2 MB boyutlarında olan PEPK aracını indirelim. İndirdiğimiz “pepk.jar” ve uygulamayı Google Play’e yüklerken kullandığımız jks uzantılı dosyayı aynı dizine alacak şekilde bir klasör oluşturalım. Daha sonrasında terminalden bu dizine gidip aşağıdaki komutu çalıştıralım, bu komuttaki bağımsız değişkenleri kendi uygulamanıza göre değiştirmeniz gerekmektedir:
java -jar pepk.jar —keystore=KEY_DOSYASI_ADI.jks —alias=ALIAS_ADI –output=encrypted_private_key_path —encryptionkey=KEY_BILGISI
KEY_DOSYASI_ADI.jks: Mobil uygulamanızın markette bulunan release apksına ait jks uzantılı imza sertifikası.
ALIAS_ADI: Uygulamanızı imzalarken girdiğiniz “alias name” bilgisi.
KEY_BILGISI: Play Store Console’de encryptionkey ismiyle karşınıza çıkan key bilgisi.
Komutunu çalıştırdıktan sonra sizden keyPassword ve storePassword bilgisini isteyecektir.
Bu işlemler başarıyla tamamlandıktan sonra, klasörümüzün içerisinde özel anahtarın oluştuğunu göreceksiniz. encrypted_private_key_path isimli bu dosyayı Google Play Console’da kaldığımız yerden devam ederek yükleyelim:
Kaydettiğimiz zaman tüm işlemleri tamamlamış olacağız. Uygulama bütünlüğü kısmında ilk baştaki Kaydol bağlantısı yerine “Google Play tarafından imzalanan sürümler” ibaresi yer alacaktır.
Bu yöntem ile hızlı ve kolay bir şekilde apk yerine artık app bundle yükleyebilmeniz için gerekli adımları tamamlamış olacaksınız.
Daha fazla bilgi için resmi dokümantasyonu inceleyebilirsiniz:
1. https://play.google.com/console/about/keymanagement/
2. https://developer.android.com/platform/technology/app-bundle
3. https://support.google.com/googleplay/android-developer/answer/9844279?visit_id=637667838486874316-1849001578&rd=1#zippy=%2Cuygulama-paketi-%C3%B6zellikleri-ve-avantajlar%C4%B1
”Biz elimizde mevcut olarak bulunan .jks dosyasını kullanarak imzalama işlemini gerçekleştireceğiz”
Bu .jks dosyası ılk sürüm oluştururken almamız gereken bir dosya mı?bu elimizde yok ise ne yapabilirim?bu dosyayı nereden bulabişlirim?