diff --git a/editor/export/editor_export_platform.cpp b/editor/export/editor_export_platform.cpp index c5853164ab0..47776c2b52b 100644 --- a/editor/export/editor_export_platform.cpp +++ b/editor/export/editor_export_platform.cpp @@ -255,6 +255,10 @@ Error EditorExportPlatform::_save_pack_file(void *p_userdata, const String &p_pa PackData *pd = (PackData *)p_userdata; String simplified_path = p_path.simplify_path(); + if (simplified_path.begins_with("uid://")) { + simplified_path = ResourceUID::uid_to_path(simplified_path).simplify_path(); + print_verbose(vformat(R"(UID referenced exported file name "%s" was replaced with "%s".)", p_path, simplified_path)); + } SavedData sd; sd.path_utf8 = simplified_path.trim_prefix("res://").utf8(); @@ -349,7 +353,13 @@ Error EditorExportPlatform::_save_pack_patch_file(void *p_userdata, const String Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_path, const Vector &p_data, int p_file, int p_total, const Vector &p_enc_in_filters, const Vector &p_enc_ex_filters, const Vector &p_key, uint64_t p_seed) { ERR_FAIL_COND_V_MSG(p_total < 1, ERR_PARAMETER_RANGE_ERROR, "Must select at least one file to export."); - String path = p_path.replace_first("res://", ""); + String path = p_path.simplify_path(); + if (path.begins_with("uid://")) { + path = ResourceUID::uid_to_path(path).simplify_path(); + print_verbose(vformat(R"(UID referenced exported file name "%s" was replaced with "%s".)", p_path, path)); + } + + path = path.replace_first("res://", ""); ZipData *zd = (ZipData *)p_userdata; @@ -1013,7 +1023,13 @@ Error EditorExportPlatform::_script_save_file(void *p_userdata, const String &p_ Callable cb = ((ScriptCallbackData *)p_userdata)->file_cb; ERR_FAIL_COND_V(!cb.is_valid(), FAILED); - Variant path = p_path; + String simplified_path = p_path.simplify_path(); + if (simplified_path.begins_with("uid://")) { + simplified_path = ResourceUID::uid_to_path(simplified_path).simplify_path(); + print_verbose(vformat(R"(UID referenced exported file name "%s" was replaced with "%s".)", p_path, simplified_path)); + } + + Variant path = simplified_path; Variant data = p_data; Variant file = p_file; Variant total = p_total; diff --git a/platform/android/export/export_plugin.cpp b/platform/android/export/export_plugin.cpp index 9b83580dcc9..e761451345e 100644 --- a/platform/android/export/export_plugin.cpp +++ b/platform/android/export/export_plugin.cpp @@ -803,7 +803,12 @@ Error EditorExportPlatformAndroid::save_apk_so(void *p_userdata, const SharedObj Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata, const String &p_path, const Vector &p_data, int p_file, int p_total, const Vector &p_enc_in_filters, const Vector &p_enc_ex_filters, const Vector &p_key, uint64_t p_seed) { APKExportData *ed = static_cast(p_userdata); - const String path = ResourceUID::ensure_path(p_path); + + String path = p_path.simplify_path(); + if (path.begins_with("uid://")) { + path = ResourceUID::uid_to_path(path).simplify_path(); + print_verbose(vformat(R"(UID referenced exported file name "%s" was replaced with "%s".)", p_path, path)); + } const String dst_path = path.replace_first("res://", "assets/"); store_in_apk(ed, dst_path, p_data, _should_compress_asset(path, p_data) ? Z_DEFLATED : 0); diff --git a/platform/android/export/gradle_export_util.cpp b/platform/android/export/gradle_export_util.cpp index 32ad2d44066..70fda0277ee 100644 --- a/platform/android/export/gradle_export_util.cpp +++ b/platform/android/export/gradle_export_util.cpp @@ -171,8 +171,14 @@ Error store_string_at_path(const String &p_path, const String &p_data) { // This method will be called ONLY when gradle build is enabled. Error rename_and_store_file_in_gradle_project(void *p_userdata, const String &p_path, const Vector &p_data, int p_file, int p_total, const Vector &p_enc_in_filters, const Vector &p_enc_ex_filters, const Vector &p_key, uint64_t p_seed) { CustomExportData *export_data = static_cast(p_userdata); - const String path = ResourceUID::ensure_path(p_path); + + String path = p_path.simplify_path(); + if (path.begins_with("uid://")) { + path = ResourceUID::uid_to_path(path).simplify_path(); + print_verbose(vformat(R"(UID referenced exported file name "%s" was replaced with "%s".)", p_path, path)); + } const String dst_path = path.replace_first("res://", export_data->assets_directory + "/"); + print_verbose("Saving project files from " + path + " into " + dst_path); Error err = store_file_at_path(dst_path, p_data); return err;