From af162a8c3f23f24b596c58ba428907cad59af9af Mon Sep 17 00:00:00 2001 From: volzhs Date: Sat, 12 Jan 2019 01:39:29 +0900 Subject: [PATCH] Make export valid when setting custom packages for iOS even no templates installed. all others export work as this already. --- platform/iphone/export/export.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index c178b1eb18a..ef81981ec00 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -1029,32 +1029,38 @@ Error EditorExportPlatformIOS::export_project(const Ref &p_p bool EditorExportPlatformIOS::can_export(const Ref &p_preset, String &r_error, bool &r_missing_templates) const { - bool valid = true; String err; + r_missing_templates = find_export_template("iphone.zip") == String(); - if (!exists_export_template("iphone.zip", &err)) { - valid = false; + if (p_preset->get("custom_package/debug") != "") { + if (FileAccess::exists(p_preset->get("custom_package/debug"))) { + r_missing_templates = false; + } else { + err += "Custom debug package not found.\n"; + } } - if (p_preset->get("custom_package/debug") != "" && !FileAccess::exists(p_preset->get("custom_package/debug"))) { - valid = false; - err += "Custom debug package not found.\n"; + if (p_preset->get("custom_package/release") != "") { + if (FileAccess::exists(p_preset->get("custom_package/release"))) { + r_missing_templates = false; + } else { + err += "Custom release package not found.\n"; + } } - if (p_preset->get("custom_package/release") != "" && !FileAccess::exists(p_preset->get("custom_package/release"))) { - valid = false; - err += "Custom release package not found.\n"; - } + bool valid = !r_missing_templates; String team_id = p_preset->get("application/app_store_team_id"); if (team_id.length() == 0) { err += "App Store Team ID not specified - cannot configure the project.\n"; + valid = false; } String identifier = p_preset->get("application/identifier"); String pn_err; if (!is_package_name_valid(identifier, &pn_err)) { err += "Invalid Identifier - " + pn_err + "\n"; + valid = false; } for (unsigned int i = 0; i < (sizeof(icon_infos) / sizeof(icon_infos[0])); ++i) { @@ -1063,6 +1069,7 @@ bool EditorExportPlatformIOS::can_export(const Ref &p_preset if (icon_path.length() == 0) { if (info.is_required) { err += "Required icon is not specified in the preset.\n"; + valid = false; } break; } @@ -1071,8 +1078,7 @@ bool EditorExportPlatformIOS::can_export(const Ref &p_preset if (!err.empty()) r_error = err; - r_missing_templates = !valid; - return err.empty(); + return valid; } EditorExportPlatformIOS::EditorExportPlatformIOS() {