AAB'yi APK Online'a Dönüştürün: Bu Araç Gerçekte Ne Yapar?
Android App Bundle (.aab), Google Play'in geliştiricilerden yüklemesini istediği biçimdir ancak telefona yükleyebileceğiniz bir şey değildir. Bir derleme sunucusundan, CI ardışık düzeninden veya bir iş arkadaşınızdan bir .aab dosyanız varsa, öncelikle bunu yüklenebilir bir .apk dosyasına dönüştürmeniz gerekir. Bu sayfa, bu iş için size iki şey sunar: işletim sisteminiz için tam bundletool komutunu yazan etkileşimli bir AAB'den APK'ya komut oluşturucu ve paketi tarayıcınızda açarak, onu dönüştürmeden önce içinde ne olduğunu görebilmenizi sağlayan bir AAB dosya gezgini.
Dönüşümün kendisi Google'ın bir Java programı olan resmi bundletool'si aracılığıyla gerçekleştirilir. Bundletool'un Java çalışma zamanına ve anahtar deponuza erişime ihtiyacı olduğundan, asıl derleme adımı sunucularımızda değil, kendi makinenizde gerçekleşir. .aab dosyanız hiçbir zaman hiçbir yere yüklenmez. Oluşturucu, tahmin yürütmeyi ortadan kaldırır, böylece bayrak adlarını ezberlemek yerine doğru, çalıştırmaya hazır komutu kopyalayabilirsiniz.
AAB vs APK: Dosyayı Neden Yeniden Adlandıramıyorsunuz?
Pek çok kişi, uzantıyı yeniden adlandırarak AAB'yi APK olarak nasıl değiştireceğinizi arıyor ve bu hiçbir zaman işe yaramıyor. .apk, Android'in doğrudan yükleyebileceği tek ve bağımsız bir pakettir. .aab bir yayınlama kapsayıcısıdır: derlenmiş kodunuzu ve kaynaklarınızı modüllere bölünmüş olarak tutar ve Google Play'in veya bundletool'un ondan cihaz için optimize edilmiş nihai APK'ları oluşturmasını bekler. Dosyayı yeniden adlandırmak bu modüllerin paketini açmaz veya herhangi bir şeyi imzalamaz; dolayısıyla Android onu yüklemeyi reddeder. Bir Android App Bundle'dan APK'ya'yi dönüştürmenin tek güvenilir yolu bundletool'un sizin için APK setini oluşturmasına izin vermektir.
Windows, Mac ve Linux'ta AAB'yi APK'ya Dönüştürme
Adımlar her platformda aynıdır ve yalnızca dosya yolu stili değişir; bu nedenle yukarıdaki komut oluşturucuda bir Windows, macOS ve Linux anahtarı bulunur. İşte baştan sona tüm akış:
- Java JDK 8 veya daha yenisini yükleyin. Java'nın PATH'inizde olduğunu doğrulamak için bir terminalde java -version'yi çalıştırın.
- Bundletool'u indirin. Google'ın resmi GitHub sürümler sayfasından en son bundletool-all.jar'yi edinin.
- APK setini oluşturun. Paket aracını paketinize yönlendirin ve bir .apks arşivi oluşturmasına izin verin: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- .apks arşivini açın. Bu sadece bir ZIP dosyasıdır, bu yüzden onu çıkartın ve içinde universal.apk'yi bulacaksınız.
- Cihazınıza yükleyin. APK'yı telefonunuza kopyalayın ve yan yükleyin veya bundletool install-apks'yi USB üzerinden bağlı bir cihazla kullanın.
Evrensel APK ve Bölünmüş APK'lar: Hangisini Oluşturmalısınız?
Herhangi bir telefona yüklenen bir dosya istiyorsanız --mode=universal kullanın. Bu, her CPU mimarisini, ekran yoğunluğunu ve dilini tek bir pakette toplayan tek bir AAB'nizden evrensel APK oluşturur. Daha büyüktür ancak bir yapıyı Play Store dışında test etmek, arşivlemek veya paylaşmak için en basit seçenektir. Modu dışarıda bırakırsanız, bundletool bunun yerine belirli bir cihaz için kesilmiş bölünmüş APK'lar üretir, böylece daha küçük indirilirler ancak eşleşen seti birlikte yüklemeniz gerekir. Hızlı kurulum için .aab dosyasını dönüştürmesi gereken çoğu kişi için evrensel APK doğru seçimdir.
Bir AAB'den Aldığınız APK'yı İmzalama
Android, imzalanmadığı sürece APK yüklemez. Test için bundletool otomatik olarak bir hata ayıklama anahtarıyla imzalayabilir; bu, oluşturucudaki "Hata ayıklama anahtar deposunu kullan" seçeneğinin yaptığı şeyin aynısıdır. Örneğin kendi web sitenizde dağıtmak üzere bir sürüm yapısı hazırlıyorsanız, anahtar deposu yolunu, anahtar deposu parolasını, anahtar takma adını ve anahtar parolası alanlarını doldurarak bunu kendi anahtar deponuzla imzalayın. Oluşturucu daha sonra --ks, --ks-pass, --ks-key-alias ve --key-pass bayraklarını ekler, böylece aldığınız APK, tek kullanımlık bir hata ayıklama imzası yerine gerçek üretim imzanızı taşır.
Yaygın bundletool Hataları ve Nasıl Düzeltilir
İki sorun tekrar tekrar ortaya çıkıyor. "bundletool: komut bulunamadı" mesajı, bundletool'u yerleşik bir komutmuş gibi çalıştırmayı denediğiniz anlamına gelir. Bu bir JAR dosyasıdır, dolayısıyla onu her zaman java -jar bundletool-all.jar ile çağırırsınız. "Anahtar/sertifika yok" hatası, imzalama ayrıntılarının eksik olduğu anlamına gelir: imzasız bir test yapısı için --mode=universal ekleyin veya yukarıda açıklandığı gibi anahtar deposu bayraklarınızı sağlayın. Sayfanın yukarısındaki Sorun Giderme sekmesi bunlardan daha fazlasını kapsar ve AAB Explorer, bir komutta hata ayıklamaya zaman harcamadan önce paketinizin gerçekten beklediğiniz modülleri içerdiğini doğrulamanıza olanak tanır.
Bir AAB'yi Gerçekte Ne Zaman Dönüştürmeniz Gerekir?
Genel nedenler, bir sürüm yapısını yayınlamadan önce gerçek bir cihazda test etmek, bir yapıyı Google Play kullanmayan bir test uzmanına vermek, kendi uygulamanızın yüklenebilir bir kopyasını kayıtlarınız için saklamak veya Play Store dahili testinin ulaşamadığı donanım üzerinde QA çalıştırmaktır. Sebep ne olursa olsun, kendi derlemeleriniz veya üzerinde çalışmak için açık izne sahip olduğunuz paketler gibi yalnızca kullanma hakkına sahip olduğunuz uygulama paketlerini dönüştürün.