mirror of
https://github.com/tiennm99/godot.git
synced 2026-08-20 06:23:40 +00:00
Mono/C#: Add iOS support
Right now, games only work on devices when exported with FullAOT+Interpreter. There are some issues left that need to addressed for FullAOT alone. Right now, it's giving issues with the Godot.NativeCalls static constructor.
This commit is contained in:
@@ -68,8 +68,8 @@ class EditorExportPlatformIOS : public EditorExportPlatform {
|
||||
String modules_buildphase;
|
||||
String modules_buildgrp;
|
||||
};
|
||||
|
||||
struct ExportArchitecture {
|
||||
|
||||
String name;
|
||||
bool is_default;
|
||||
|
||||
@@ -792,6 +792,13 @@ Error EditorExportPlatformIOS::_export_additional_assets(const String &p_out_dir
|
||||
Vector<String> frameworks = export_plugins[i]->get_ios_frameworks();
|
||||
Error err = _export_additional_assets(p_out_dir, frameworks, true, r_exported_assets);
|
||||
ERR_FAIL_COND_V(err, err);
|
||||
|
||||
Vector<String> project_static_libs = export_plugins[i]->get_ios_project_static_libs();
|
||||
for (int j = 0; j < project_static_libs.size(); j++)
|
||||
project_static_libs.write[j] = project_static_libs[j].get_file(); // Only the file name as it's copied to the project
|
||||
err = _export_additional_assets(p_out_dir, project_static_libs, true, r_exported_assets);
|
||||
ERR_FAIL_COND_V(err, err);
|
||||
|
||||
Vector<String> ios_bundle_files = export_plugins[i]->get_ios_bundle_files();
|
||||
err = _export_additional_assets(p_out_dir, ios_bundle_files, false, r_exported_assets);
|
||||
ERR_FAIL_COND_V(err, err);
|
||||
@@ -1069,6 +1076,22 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p
|
||||
return ERR_FILE_NOT_FOUND;
|
||||
}
|
||||
|
||||
// Copy project static libs to the project
|
||||
Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins();
|
||||
for (int i = 0; i < export_plugins.size(); i++) {
|
||||
Vector<String> project_static_libs = export_plugins[i]->get_ios_project_static_libs();
|
||||
for (int j = 0; j < project_static_libs.size(); j++) {
|
||||
const String &static_lib_path = project_static_libs[j];
|
||||
String dest_lib_file_path = dest_dir + static_lib_path.get_file();
|
||||
Error lib_copy_err = tmp_app_path->copy(static_lib_path, dest_lib_file_path);
|
||||
if (lib_copy_err != OK) {
|
||||
ERR_PRINTS("Can't copy '" + static_lib_path + "'.");
|
||||
memdelete(tmp_app_path);
|
||||
return lib_copy_err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String iconset_dir = dest_dir + binary_name + "/Images.xcassets/AppIcon.appiconset/";
|
||||
err = OK;
|
||||
if (!tmp_app_path->dir_exists(iconset_dir)) {
|
||||
|
||||
Reference in New Issue
Block a user