A little background: I am building the next version of the Waitress.com apps in Xamarin as a shared project (the old apps are "regular" native apps). Waitress is a restaurant order ahead app popular in Stockholm, Sweden, looking to expand. As part of the expansion strategy, waitress.com has started white labeling apps for large restaurant chains (but all restaurants still appear in the waitress apps.).
Every chain app is exactly the same as the current waitress app, with a single codebase, git repo, etc. There are only three things that differ: 1) The app name/id (and thus also push notifications), 2) a filter that only shows restaurants and receipts for this chainId, and 3) app icon and splash screen.
Every time we release a new Waitress.com app we would like to build apps for each chain we have signed deals with and release them at the same time (iOS/Android/UWP).
For "regular" iOS we use build targets to use a separate .plist to achieve this. What would be the best way to do this with Xamarin and Visual Studio?
I saw this thread but I am wondering whether there is now a better/different way. Using preprocessor directives seems best to me, at the cost of including images we do not use, but I am a little uncertain how that can give me different app names and app icons, some guidance there would be much appreciated. The other approach, with separate .csproj files would fix that, but seems more complicated, I am not sure I fully understand what could go wrong with that approach.
Any help will be much appreciated!