We are using Addressable@1.2.4 for our project (already live). The project requires backward supports for earlier builds, as there are about 2-3 production build versions at any time that are still being used.
Currently our build workflow is at follow:
- To make a new build, from a stable branch, checkout to a new deploy branch (i.e: deploy/android/v2.1.15). Build the initial content there and upload to remote server. Commit the addressable_content_state.bin file to the branch to save it for future content update. Then build the game binary and upload to the store. ( #1 in the picture )
- To do a content update, merge the stable branch into the appropriate deploy branch. Run the āprepare for content updateā, which may generate some new content update groups. Then run ābuild for content updateā and upload the new bundles to remote server. Commit the addressable group layout changes to the deploy branch after that. ( #2, #3 in the picture).
However, after the addressable group layout has been changed in the deploy branch, we find it hard to merge from stable into deploy again for another content update ( as in #4 in the picture), due to the addressable layout on both side is significantly different. The problem is due to the stable branch does not have any content update group, while the deploy branch may have some due to #3. The proper merge resolution requires manual guid compares / copy-paste across files and that is so painful that we resorted to manually replicate our works on the deploy branch itself.
We tried skipping the commit at step (3) (i.e: prep and build content updates, but do not commit the new addressable layout). However, we cannot do any further content updates, presumably because of skipping the commit??
Just wondering how do you guys manage content updates for multiple versions? Is there any recommended approach for this problem from the Unity addressable dev team?

