Hey everyone, I need some help with a Unity project.
I’m working on a business app for mobile devices and my client really needs white label support. Different companies should be able to rebrand the app with their own logos, colors, and company info.
I’ve been searching online for hours but can’t find clear tutorials or documentation about how to set this up properly in Unity. Most results are about general white labeling concepts, not the actual technical implementation.
Does anyone have experience building white label functionality into Unity mobile apps? I’m looking for practical advice on how to structure the code and assets so multiple branded versions can be generated from the same codebase.
Any tips or resources would be really appreciated!
I just dealt with this same issue. Unity’s Addressables with build configurations is the way to go. Create separate addressable groups for each brand’s assets, then write build scripts that swap the right content bundles during compilation. Unity Cloud Build with environment variables automates this for different clients. Keep your core logic completely separate from brand stuff - trust me on this. I hardcoded references at first and it was a total nightmare to maintain. Now I use a centralized theme manager that loads the right brand assets at runtime based on build flags.
Been through this exact scenario about six months ago. Created a Resources folder with brand-specific subfolders and a simple config file that loads at startup to determine which brand assets to use. Also built a custom editor script that auto-generates builds for different clients by swapping the config file and assets before building. Key thing I learned: never reference brand assets directly in scripts. Use string identifiers that map to actual assets through your brand config instead. Keeps the codebase clean and makes adding new brands super easy. Runtime performance stayed solid since Resources loads everything efficiently.
just build a theme system with asset bundles. i load different brand packages at startup using a simple build identifier. works perfectly and you won’t need those complex build scripts everyone else is talking about.
for sure! scriptable objects r a solid way to handle this. i set up a branding config that includes logos and colors, then use preprocessor directives for builds. it’s way more manageable than juggling a bunch of separate projects.
Dealt with this nightmare two years ago - client wanted 8 different branded versions.
What saved me: Unity’s Build Profiles + a simple JSON config system. Each brand gets its own build profile pointing to a different config file.
Make one BrandConfig.json in StreamingAssets with all the brand stuff - company name, hex colors, logo paths, whatever. App loads this at startup and applies everything through a BrandManager singleton.
I dump all brand logos and custom images in StreamingAssets too, organized by brand folders. Config file just references the paths.
Game changer was automating builds with a custom editor script. It swaps the config file and asset folders, then starts the build. Now I generate all 8 versions with one button.
Don’t make my early mistake of baking everything at build time. Runtime loading’s better - you can A/B test or let users switch themes.
StreamingAssets works on both iOS and Android, and you skip the Addressables complexity unless you need remote updates.