Merge pull request #116714 from bruvzg/ios_pr

Add `end_generate_apple_embedded_project` export plugin method for iOS projects.
This commit is contained in:
Thaddeus Crews 2026-02-27 15:44:43 -06:00
commit bba2e018bd
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
4 changed files with 30 additions and 0 deletions

View file

@ -68,6 +68,15 @@
This is called when the customization process for scenes ends.
</description>
</method>
<method name="_end_generate_apple_embedded_project" qualifiers="virtual">
<return type="void" />
<param index="0" name="path" type="String" />
<param index="1" name="will_build_archive" type="bool" />
<description>
This is called after Xcode project generation, but before it is built.
[b]Note:[/b] Only supported on iOS and visionOS.
</description>
</method>
<method name="_export_begin" qualifiers="virtual">
<return type="void" />
<param index="0" name="features" type="PackedStringArray" />

View file

@ -2058,6 +2058,12 @@ Error EditorExportPlatformAppleEmbedded::_export_project_helper(const Ref<Editor
}
}
for (int i = 0; i < export_plugins.size(); i++) {
if (export_plugins[i]->supports_platform(Ref<EditorExportPlatform>(this))) {
export_plugins[i]->end_generate_apple_embedded_project(p_path, export_project_only);
}
}
if (export_project_only) {
return OK;
}

View file

@ -331,6 +331,16 @@ void EditorExportPlugin::_export_begin(const HashSet<String> &p_features, bool p
void EditorExportPlugin::_export_end() {}
void EditorExportPlugin::_end_generate_apple_embedded_project(const String &p_path, bool p_p_will_build_archive) {}
void EditorExportPlugin::end_generate_apple_embedded_project(const String &p_path, bool p_will_build_archive) {
if (GDVIRTUAL_IS_OVERRIDDEN(_end_generate_apple_embedded_project)) {
GDVIRTUAL_CALL(_end_generate_apple_embedded_project, p_path, p_will_build_archive);
} else {
_end_generate_apple_embedded_project(p_path, p_will_build_archive);
}
}
void EditorExportPlugin::skip() {
skipped = true;
}
@ -367,6 +377,7 @@ void EditorExportPlugin::_bind_methods() {
GDVIRTUAL_BIND(_export_file, "path", "type", "features");
GDVIRTUAL_BIND(_export_begin, "features", "is_debug", "path", "flags");
GDVIRTUAL_BIND(_export_end);
GDVIRTUAL_BIND(_end_generate_apple_embedded_project, "path", "will_build_archive");
GDVIRTUAL_BIND(_begin_customize_resources, "platform", "features");
GDVIRTUAL_BIND(_customize_resource, "resource", "path");

View file

@ -112,12 +112,14 @@ protected:
virtual void _export_file(const String &p_path, const String &p_type, const HashSet<String> &p_features);
virtual void _export_begin(const HashSet<String> &p_features, bool p_debug, const String &p_path, int p_flags);
virtual void _export_end();
virtual void _end_generate_apple_embedded_project(const String &p_path, bool p_will_build_archive);
static void _bind_methods();
GDVIRTUAL3(_export_file, String, String, Vector<String>)
GDVIRTUAL4(_export_begin, Vector<String>, bool, String, uint32_t)
GDVIRTUAL0(_export_end)
GDVIRTUAL2(_end_generate_apple_embedded_project, const String &, bool)
GDVIRTUAL2RC(bool, _begin_customize_resources, const Ref<EditorExportPlatform> &, const Vector<String> &)
GDVIRTUAL2R_REQUIRED(Ref<Resource>, _customize_resource, const Ref<Resource> &, String)
@ -172,6 +174,8 @@ public:
virtual bool supports_platform(const Ref<EditorExportPlatform> &p_export_platform) const;
PackedStringArray get_export_features(const Ref<EditorExportPlatform> &p_export_platform, bool p_debug) const;
void end_generate_apple_embedded_project(const String &p_path, bool p_will_build_archive);
virtual PackedStringArray get_android_dependencies(const Ref<EditorExportPlatform> &p_export_platform, bool p_debug) const;
virtual PackedStringArray get_android_dependencies_maven_repos(const Ref<EditorExportPlatform> &p_export_platform, bool p_debug) const;
virtual PackedStringArray get_android_libraries(const Ref<EditorExportPlatform> &p_export_platform, bool p_debug) const;