[iOS] Fix plugin configuration loading

Clear ConfigFile parameter before loading new file.
Ignore duplicate input plist keys

(cherry picked from commit aa321f0a24)
This commit is contained in:
Sergey Minakov 2021-07-13 21:30:19 +03:00 committed by Rémi Verschelde
parent 72db6016ba
commit f3da335416
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 8 additions and 1 deletions

View file

@ -372,6 +372,8 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options)
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "plugins/" + found_plugins[i].name), false)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "plugins/" + found_plugins[i].name), false));
} }
Set<String> plist_keys;
for (int i = 0; i < found_plugins.size(); i++) { for (int i = 0; i < found_plugins.size(); i++) {
// Editable plugin plist values // Editable plugin plist values
PluginConfigIOS plugin = found_plugins[i]; PluginConfigIOS plugin = found_plugins[i];
@ -383,7 +385,10 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options)
switch (item.type) { switch (item.type) {
case PluginConfigIOS::PlistItemType::STRING_INPUT: { case PluginConfigIOS::PlistItemType::STRING_INPUT: {
String preset_name = "plugins_plist/" + key; String preset_name = "plugins_plist/" + key;
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, preset_name), item.value)); if (!plist_keys.has(preset_name)) {
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, preset_name), item.value));
plist_keys.insert(preset_name);
}
} break; } break;
default: default:
continue; continue;

View file

@ -270,6 +270,8 @@ static inline PluginConfigIOS load_plugin_config(Ref<ConfigFile> config_file, co
return plugin_config; return plugin_config;
} }
config_file->clear();
Error err = config_file->load(path); Error err = config_file->load(path);
if (err != OK) { if (err != OK) {