Still digging into this further as I feel this is likely something I’m doing wrong.
Everything worked as expected in 4.18.3. Was unable to fully test in 4.19 due to Android incompatibilities w/ unrelated 3rd party plugins. Now testing in 4.20.2 and have run into this issue.
I have a set of plugins which are used across a number of projects, each plugin defines it’s own config (.ini) file in order to avoid conflicts in the standard configs (Game/Engine/Input/etc) as well as simplifying adding/configuring the plugins per project.
Config classes are defined as follows
UCLASS(config = PluginXYZ, defaultconfig, BlueprintType )
class PLUGINXYZ_API UXYZSettings : public UObject
At first I thought this was an issue w/ the (seemingly new?) [Staging] section in DefaultGame.ini and the WhitelistConfigFiles/BlacklistConfigFiles - and UBT generated helpful warnings pointing me in that direction.
So I added entries as follows to DefaultGame.ini
[Staging]
+WhitelistConfigFiles=ProjectName/Config/DefaultPluginXYZ.ini
+BlacklistConfigFiles=ProjectName/Config/TemplateDefs.ini
That silenced the warnings, but I feel I must have configured this wrong… as even w/ this new system to manage user defined .ini files - and specific warnings in the packaging process on how to configure it - it seems to be completely non-functional on Android under 4.20.2? Not to be critical but it strikes me as an absurd and sinister Unity-esque oversight if that’s the case. Took quite a while to figure out what was going wrong as all of the settings are very nuanced, mostly subtle, and the defaults a bit too sensible (I suppose?). Even given that, it’s hard for me to imagine I’d be the first person to run into this issue - though I can’t find anything else about it anywhere. So, circling back - what might I be doing wrong?
I’m going to start testing w/ some blank projects to see if I can narrow down the issue further. I will upload an example project to demonstrate the issue… tomorrow (too much head to keyboard collision for today) - unless someone can lead me to a solution
So far I have only confirmed that everything works as expected for Win64 (configured settings are correct at runtime) but not on Android (custom/plugin/user config object properties are simply the ctor default values). I have found no indication that the issue affects the standard (Game/Engine/Input/etc) config files - though if that were the case certainly someone else would have noticed by now.
There are no platform override .inis used in these projects at all, and I did try nuking the Saved/Config files to no avail.
I expect if I moved all the settings into one of the standard config files, it would behave correctly. Unfortunately that would be a maintenance disaster and make 4.18->4.20 migration for the associated projects a nightmare… also would break backwards compatibility for the plugins (so many #if ENGINE_MAJOR/MINOR_VERSION checks in vain…), which would create more headaches, so I’d much rather not.
Thanks for reading!
Edit: all builds in shipping configuration due to signature requirements