I think, you can download resources, logos, etc.. One time, and cache them. If an update is needed, configuration can be triggered. We use that on our application too. After each connection, or with a recurrent job (like Workmanager => each day), we poll the configuration endpoint. If the configuration version is different (2.1 => 2.2), configurations are refreshed, and store locally.
I think different app are not bad at all, because, you implement some specific business logic for each customers. It’s not reliable if the app grown up imo.