2017-10-18 43 views
9

Bir süre önce benim app beta sürümünü yayımladı ve APK Genişletme Dosyası ile birbirine bağladık. Sonra dosyaları dokunmadan benim APK güncellemek istedim ve şu yaptı:Handling APK Genişletme Dosyalar ve serbest sürüm

Uygulamamda sürüm kodu 7 ve sağlayıcı ayrıca bu değeri vardı.

<provider 
    android:name=".expansion.MyApezProvider" 
    android:authorities="com.bla.blabla" 
    android:exported="false" 
    android:multiprocess="true" 
> 
    <meta-data 
     android:name="mainVersion" 
     android:value="7"> 
    </meta-data> 
</provider> 

Ve işte benim Downloader Faaliyet snippet'idir: sağlayıcısı benim manifest'te aşağıdaki gibi görünür

private static final XAPKFile[] xAPKS = {new XAPKFile(true, // true signifies a main file 
     7, // the version of the APK that the file was uploaded 
     383989643L // the length of the file in bytes 
)}; 

sadece 8'e 7'den tezahür sürüm kodu değerini artırılır ettik. Çünkü genişletme dosyasına dokunmak istemedim. Bu nedenle sağlayıcı ve Downloader Aktivite değer hala 7'ye yeni APK Dosyası yükledim ve yeniden yüklendikten APK Genişletme Dosyası seçmedim

idi. Ama bu işe yaramadı. Kullanıcılar yeni sürüme güncellendikten sonra, uygulamadaki video dosyaları artık kullanılamaz.

Yani APK tekrar Dosya ve APK Genişletme Dosyası yeniden yüklemeleri ve o işleri yükledi. Ancak bu çok garip çünkü kullanıcı her bir güncelleme için genişletmeleri indirmeli.

Soruma sorum: Yeni APK'yı Google Play Console'a yüklediğimde her zaman depolanan apk genişletme dosyasını seçmem veya yeniden yüklemem gerekiyor mu? APK Genişletme Dosyalarının davranışı beta ve relased sürümde farklı mıdır? Aşağıdaki sonrası ise

Updating an APK in Google Play without changing the expansion file bu davranış sadece taslak modunda olur ama benim app taslak modunda olmadığını söylüyor. Beta olarak yayınlanmış .

Yardımlarınız için çok minnettar olurum.

cevap

2

İki dosyayı da yüklemelisiniz, çünkü bu normal yoldur.

Google Konsolu Play'i kullanarak bir APK her defasında, APK için bir veya iki genişletme dosyasını ekleme seçeneğiniz vardır. Her dosya 2GB'a kadar olabilir ve seçtiğiniz herhangi bir biçim olabilir, ancak indirme sırasında bant genişliğini korumak için sıkıştırılmış bir dosya kullanmanızı öneririz. Kavramsal olarak, her bir genişletme dosyası farklı bir rol oynar:

Ana genişletme dosyası, uygulamanızın gerektirdiği ek kaynaklar için birincil genişletme dosyasıdır. Yama genişletme dosyası isteğe bağlıdır ve ana genişletme dosyasına küçük güncellemeler için tasarlanmıştır. İki genişletme dosyasını istediğiniz gibi kullanabilmeniz için, ana genişletme dosyasının birincil varlıkları sağlamasını ve hiç güncellenmediyse nadiren olmasını öneririz; yama genişletme dosyası daha küçük olmalı ve her büyük sürümle veya gerektiği şekilde güncellenerek bir "yama taşıyıcısı" olarak kullanılmalıdır.

Ancak, uygulamanızın güncelleştirmesi yalnızca yeni bir yama genişletme dosyası gerektiriyorsa bile, bildiriminde güncelleştirilmiş versionCode ile yeni bir APK yüklemeniz gerekir. (Play Konsol varolan APK'nıza bir genişletme dosyalarını yüklemek için izin vermez.)

Not: yama genişletme dosyası anlamsal dosya her dosyayı kullanabilirsiniz ana genişleme istediğiniz gibi aynıdır . Sistem, uygulamanız için düzeltme yapmak üzere yama genişletme dosyasını kullanmaz. Kendinizi yamalı ya da iki dosya arasında ayrım yapabilmeniz gerekir.

Sen bulabilirsiniz fazla ayrıntıyı burada https://developer.android.com/google/play/expansion-files.html

+0

Cevabınız için teşekkür ederiz. Ana ve yama genişleme dosyasının iletişimini anlıyorum ve sadece ana dosyaya ihtiyacım var. Ana genişletme dosyam hiçbir zaman değişmeyecek ve soru şudur: Eğer sadece bir apk güncelliyorsam, her defasında yeni bir versiyon numarası ile yüklemek zorunda mıyım? Bu yüzden, her zaman sürüm koduna uymak için tedarikçimin değerini ve yükleyicimde ve Downloader Aktivitesinde değerini arttırmak zorunda kalacağım. Bu nedenle, kullanıcı her güncelleme için büyük dosyayı indirmelidir. Bunun doğru yol olduğunu düşünmüyorum. –