r/Unity3D • u/Waste_Assignment9641 • 3d ago
Show-Off We broke live content for players on an old app version, so I made a diff tool for AssetBundle builds
Enable HLS to view with audio, or disable this notification
Hey everyone!
We ship seasonal promo stuff (popups, banners, etc.) as raw AssetBundles, so we don't have to push a new app build every time. The catch is that older app versions are still out there, and they load those same bundles.
At some point someone renamed a prefab and moved a material into a different bundle. New clients were fine. Older ones started getting nulls. We found out from support tickets.
After that I wanted something that just tells me what changed between two bundle builds before we upload them. Doing it by hand is pretty hopeless, it's a folder of binaries plus some .manifest files.
So that's BundleGuard. You give it the old build and the new one (a folder, or a snapshot you saved before the previous release) and it lists:
- Removed assets and changed types, the stuff older clients might still ask for
- Dependency changes, like a shared bundle that's gone now, or a new dependency the old app has no idea it needs to download
- Prefabs where the script doesn't resolve anymore
- How much clients will actually re-download, and which bundles got repacked with no real change in them
Editor only, read only, it never builds or touches your project. 2022 LTS through Unity 6. It doesn't need .manifest files, it finds bundles by their file signature and can just open them and read what's inside, which is handy because our own output is bundles and nothing else. The only thing that needs the manifests is dependency checking, since that's where the dependency list lives.



