Multiple Expansion Files for Mobile, Rift and Future Platforms
Oculus Developer Blog
Posted by Anirban Ray, Alex Renzin, Dmitry Soshnikov
March 4, 2019

Some time ago we introduced the single static expansion file (aka “OBB”), which allowed increasing mobile app size up to 5GB. Today we extend this capability allowing multiple expansion files.

Required Asset Files

The dynamic Asset Files which are suitable for DLCs, and any extra post-installation content have been available for Mobile and Rift apps for a while. Such files can be downloaded by developers at runtime using Platform SDK calls. This reduces the initial app size, and also helps increasing the revenue by selling the extra content.

Engines have full support for the asset files and are available via the:

Sometimes it might be desirable to download asset files automatically, when an app is installed or updated. The Required Asset Files serves exactly this purpose, and in general can be seen as “multiple OBBs” for Mobile platforms. The Required assets are not limited only to the Mobile platform though, and can be used on Rift platform as well.

Uploading builds with Required Assets

Similarly to OBB and generic assets, the Required Assets must be uploaded together with the main build on each update.

To upload a build with asset files, you will need to use the ovr-platform-util tool.

Assuming you have the ~/my-assets directory with asset files, here is an example of uploading an Oculus Quest build with asset files:

./ovr-platform-util upload-mobile-build

	--app_id <app-ID>
	--app_secret <app-secret>
	--apk <path-to-apk>
	--channel <release-channel> 
	--assets_dir ~/my-assets
	--asset_files_config '{"Asset1.obb": {"required": true}, "Asset2.obb": {"sku": "IAP_SKU"}}'

Note: for Rift platform please use upload-rift-build command, and address the documentation on specific platform fields.

In this example the Asset1.obb is marked as required, so it will be downloaded automatically on app install. The Asset2.obb is not required, and its download is managed by a developer themselves, it also specifies the IAP SKU for selling this extra content.

Note: the new --asset_files_config parameter can be used to replace the legacy --asset_file_iap_configs which was limited, and works only with IAPs. Each field in the new config is the asset file name, and the value is a structure which currently supports "required" and "sku" fields.

Files format and install location

Asset files can be of any format. On an Android-based platform they usually correspond to OBB files. On Rift they can be any extra content.

In contrast with the single OBB, the asset files are not renamed, and downloaded “as is” with the original file name. The destination folders for asset files are:

  • /sdcard/Android/obb/<package name>/ for Mobile platform
  • <app-folder>/ASSET_FILES/ for Rift platform

Managing Assets Files in Dashboard

Once the build with assets is uploaded, its details can be found in the dashboard on the builds page or the direct link:<app-id>/build/<build-id>/expansion-files/

Here's an example:

The Required Asset Files support is available now for the all platforms. We encourage you to experiment with it using Release Channels before pushing asset files, or DLC to live users. As always, we'd love to hear your feedback.