前段时间,我发布了我的应用的测试版,并将其与APK扩展文件关联起来。然后,我想更新我的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>
这里是我的下载活动的一个片段:
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
)};
我只增加清单中的版本代码值7〜8。因为我不想触摸扩展文件。因此,提供商和下载程序活动中的值仍然为7.
我已经上传了新的APK文件,但没有再次选择上传的APK扩展文件。但是这不起作用。用户更新到新版本后,应用程序中的视频文件不再可用。
因此,我再次上传了APK文件,然后重新上传APK扩展文件,并且工作正常。但这很奇怪,因为用户必须为每一次更新下载扩展。
我的问题是:当我将新apk上传到Google Play控制台时,是否必须始终选择存储的apk扩展文件或重新上传它? APK扩展文件的行为在beta和relased版本中有所不同吗?
在以下帖子Updating an APK in Google Play without changing the expansion file它说,这种行为只发生在草稿模式,但我的应用程序不是草稿模式。它是已发布作为测试版。
我会非常感谢您的帮助。
谢谢你的回答。我正在理解主要和补丁扩展文件的conecpt,我只需要主文件。我的主扩展文件永远不会改变,问题是:如果我只更新apk,我是否每次都必须使用新版本号上传它?所以我将不得不在我的清单和下载器活动中增加提供者的值以匹配版本代码。因此用户必须下载每个更新的大文件。我不认为这是正确的方法。 –