bin file changes

Trying to confirm my understanding of the bin file and check whether its working in our project.

We are tracking the changes of the .bin file in git so that artists can upload and update assets and unity ccd with the .bin file.

In terms of updating changes of the .bin file, what kind of changes would trigger a change to the .bin file and require it to be checked into github to keep the repo in sync?

  • changing addressable assets
  • adding new asset groups

Are there cases where a change to an asset wouldn’t change the .bin file?
Are the asset bundles referenced in the .bin file every (removed, or updated) when choosing “Update a Previous Build” approach

AFAIK the bin file only changes when you (re)build your bundles.

The addressables_content_state.bin file represents a new build. It contains information about each asset - a hash, what Bundle it will be found it, bundle CRC and CacheHash values etc. If any of this changes i.e. Anything about the build. Then the bin file would have different info.

When doing an “Update a Previous Build” it does not make a new .bin file.
When creating the catalog, It uses the information about the previous content (through the .bin) to modify the catalog as needed as shown in the documentation here. Taking into account any Groups set to “cannot change post release” so that any unchanged Assets correctly point to the previous one.

The update workflow is primarily used for Player builds, where you have local content that cannot be change ie, shipped with the Player. You can then use the content update workflow to pull local content (without editing local content ofc) into new remote content. While keeping unchanged content being loaded from the original local content.

You do can keep it in sync with your repo, but the most important point is to keep it safe with your release. e.g. you could Tag/branch off when your Release Player v1 etc, including the .bin file there so that you can clone that branch and update that Release with new content using that state.bin file and scripts etc that were present at the time of that release.