处理测试版和发布版的APK扩展文件

Den*_*ero 9 android google-play apk-expansion-files

前段时间我发布了我的应用程序的测试版,并将其与APK扩展文件相关联.然后我想更新我的APK而不触摸文件,并做了以下:

我的应用程序的版本代码是7,提供程序也有此值.提供程序看起来像在我的清单中:

<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>
Run Code Online (Sandbox Code Playgroud)

这是我的下载活动的片段:

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
)};
Run Code Online (Sandbox Code Playgroud)

我只将清单中的版本代码值从7增加到8.因为我不想触摸扩展文件.因此,提供程序和Downloader Activity中的值仍为7.

我上传了新的APK文件,但没有再次选择上传的APK扩展文件.但这没效果.用户更新到新版本后,应用程序中的视频文件不再可用.

所以我再次上传了APK文件并重新上传了APK扩展文件,这有效.但这很奇怪,因为用户必须为每次更新下载扩展.

我的问题是:当我将新的apk上传到Google Play控制台时,我是否必须始终选择存储的apk扩展文件或重新上传它?APK扩展文件的行为在测试版和版本中是否有所不同?

在以下帖子中更新Google Play中的APK而不更改扩展文件时,它表示此行为仅在草稿模式下发生,但我的应用程序未处于草稿模式.它作为测试版发布.

我非常感谢你的帮助.

小智 2

您必须上传这两个文件,因为这是正常方式。

\n\n

每次使用 Google Play 管理中心上传 APK 时,您都可以选择向 APK 添加一到两个扩展文件。每个文件最大可为 2GB,并且可以是您选择的任何格式,但我们建议您在下载过程中使用压缩文件以节省带宽。从概念上讲,每个扩展文件扮演着不同的角色:

\n\n

主扩展文件是应用程序所需的附加资源的主要扩展文件。\n补丁扩展文件是可选的,用于对主扩展文件进行小幅更新。\n虽然您可以按照自己的意愿使用这两个扩展文件,但我们建议主扩展文件提供主要资源,并且应该很少更新;补丁扩展文件应该更小,并作为 \xe2\x80\x9cpatch 载体,\xe2\x80\x9d 随着每个主要版本或根据需要进行更新。

\n\n

但是,即使您的应用程序更新只需要新的补丁扩展文件,您仍然必须上传清单中包含更新版本代码的新 APK。(Play 管理中心不允许您将扩展文件上传到现有 APK。)

\n\n

注意:补丁扩展文件在语义上与主扩展文件\xe2\x80\x94相同,您可以以任何您想要的方式使用每个文件。系统不会使用补丁扩展文件来为您的应用程序执行修补。您必须自己执行修补或能够区分这两个文件。

\n\n

您可以在这里找到更多详细信息https://developer.android.com/google/play/expansion-files.html

\n