Class reference
EditorExportPlatform
Inherits RefCounted
Identifies a supported export platform, and internally provides the functionality of exporting to that platform.
Description
Base resource that provides the functionality of exporting a release build of a project to a platform, from the editor. Stores platform-specific metadata such as the name and supported features of the platform, and performs the exporting of projects, PCK files, and ZIP files. Uses an export template for the platform provided at the time of project exporting. Used in scripting by EditorExportPlugin to configure platform-specific customization of scenes and resources. See EditorExportPlugin._begin_customize_scenes() and EditorExportPlugin._begin_customize_resources() for more details.
Methods
void add_message(int type, String category, String message)
int type, String category, String message)Adds a message to the export log that will be displayed when exporting ends.
void clear_messages()
Clears the export log.
EditorExportPreset create_preset()
EditorExportPreset create_preset()Create a new preset for this platform.
int export_pack(EditorExportPreset preset, bool debug, String path, int flags = 0)
int export_pack(EditorExportPreset preset, bool debug, String path, int flags = 0)Creates a PCK archive at path for the specified preset.
int export_pack_patch(EditorExportPreset preset, bool debug, String path, PackedStringArray patches = PackedStringArray(), int flags = 0)
int export_pack_patch(EditorExportPreset preset, bool debug, String path, PackedStringArray patches = PackedStringArray(), int flags = 0)Creates a patch PCK archive at path for the specified preset, containing only the files that have changed since the last patch. Note: patches is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead.
int export_project(EditorExportPreset preset, bool debug, String path, int flags = 0)
int export_project(EditorExportPreset preset, bool debug, String path, int flags = 0)Creates a full project at path for the specified preset.
int export_project_files(EditorExportPreset preset, bool debug, Callable save_cb, Callable shared_cb = Callable())
int export_project_files(EditorExportPreset preset, bool debug, Callable save_cb, Callable shared_cb = Callable())Exports project files for the specified preset. This method can be used to implement custom export format, other than PCK and ZIP. One of the callbacks is called for each exported file. save_cb is called for all exported files and have the following arguments: file_path: String, file_data: PackedByteArray, file_index: int, file_count: int, encryption_include_filters: PackedStringArray, encryption_exclude_filters: PackedStringArray, encryption_key: PackedByteArray. shared_cb is called for exported native shared/static libraries and have the following arguments: file_path: String, tags: PackedStringArray, target_folder: String. Note: file_index and file_count are intended for progress tracking only and aren't necessarily unique and precise.
int export_zip(EditorExportPreset preset, bool debug, String path, int flags = 0)
int export_zip(EditorExportPreset preset, bool debug, String path, int flags = 0)Create a ZIP archive at path for the specified preset.
int export_zip_patch(EditorExportPreset preset, bool debug, String path, PackedStringArray patches = PackedStringArray(), int flags = 0)
int export_zip_patch(EditorExportPreset preset, bool debug, String path, PackedStringArray patches = PackedStringArray(), int flags = 0)Create a patch ZIP archive at path for the specified preset, containing only the files that have changed since the last patch. Note: patches is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead.
Dictionary find_export_template(String template_file_name) const
Dictionary find_export_template(String template_file_name) constLocates export template for the platform, and returns Dictionary with the following keys: path: String and error: String. This method is provided for convenience and custom export platforms aren't required to use it or keep export templates stored in the same way official templates are.
PackedStringArray gen_export_flags(int flags)
PackedStringArray gen_export_flags(int flags)Generates array of command line arguments for the default export templates for the debug flags and editor settings.
Array get_current_presets() const
Array get_current_presets() constReturns array of EditorExportPresets for this platform.
PackedStringArray get_forced_export_files(EditorExportPreset preset = null) static
PackedStringArray get_forced_export_files(EditorExportPreset preset = null) staticReturns array of core file names that always should be exported regardless of preset config.
Dictionary get_internal_export_files(EditorExportPreset preset, bool debug)
Dictionary get_internal_export_files(EditorExportPreset preset, bool debug)Returns additional files that should always be exported regardless of preset configuration, and are not part of the project source. The returned Dictionary contains filename keys (String) and their corresponding raw data (PackedByteArray).
String get_message_category(int index) const
String get_message_category(int index) constReturns message category, for the message with index.
int get_message_count() const
int get_message_count() constReturns number of messages in the export log.
String get_message_text(int index) const
String get_message_text(int index) constReturns message text, for the message with index.
int get_message_type(int index) const
int get_message_type(int index) constReturns message type, for the message with index.
String get_os_name() const
String get_os_name() constReturns the name of the export operating system handled by this EditorExportPlatform class, as a friendly string. Possible return values are Windows, Linux, macOS, Android, iOS, and Web.
int get_worst_message_type() const
int get_worst_message_type() constReturns most severe message type currently present in the export log.
Dictionary save_pack(EditorExportPreset preset, bool debug, String path, bool embed = false)
Dictionary save_pack(EditorExportPreset preset, bool debug, String path, bool embed = false)Saves PCK archive and returns Dictionary with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). If embed is true, PCK content is appended to the end of path file and return Dictionary additionally include following keys: embedded_start: int (embedded PCK offset) and embedded_size: int (embedded PCK size).
Dictionary save_pack_patch(EditorExportPreset preset, bool debug, String path)
Dictionary save_pack_patch(EditorExportPreset preset, bool debug, String path)Saves patch PCK archive and returns Dictionary with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String).
Dictionary save_zip(EditorExportPreset preset, bool debug, String path)
Dictionary save_zip(EditorExportPreset preset, bool debug, String path)Saves ZIP archive and returns Dictionary with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String).
Dictionary save_zip_patch(EditorExportPreset preset, bool debug, String path)
Dictionary save_zip_patch(EditorExportPreset preset, bool debug, String path)Saves patch ZIP archive and returns Dictionary with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String).
int ssh_push_to_remote(String host, String port, PackedStringArray scp_args, String src_file, String dst_file) const
int ssh_push_to_remote(String host, String port, PackedStringArray scp_args, String src_file, String dst_file) constUploads specified file over SCP protocol to the remote host.
int ssh_run_on_remote(String host, String port, PackedStringArray ssh_arg, String cmd_args, Array output = [], int port_fwd = -1) const
int ssh_run_on_remote(String host, String port, PackedStringArray ssh_arg, String cmd_args, Array output = [], int port_fwd = -1) constExecutes specified command on the remote host via SSH protocol and returns command output in the output.
int ssh_run_on_remote_no_wait(String host, String port, PackedStringArray ssh_args, String cmd_args, int port_fwd = -1) const
int ssh_run_on_remote_no_wait(String host, String port, PackedStringArray ssh_args, String cmd_args, int port_fwd = -1) constExecutes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish.
Constants
EXPORT_MESSAGE_NONE = 0
Invalid message type used as the default value when no type is specified.
EXPORT_MESSAGE_INFO = 1
Message type for informational messages that have no effect on the export.
EXPORT_MESSAGE_WARNING = 2
Message type for warning messages that should be addressed but still allow to complete the export.
EXPORT_MESSAGE_ERROR = 3
Message type for error messages that must be addressed and fail the export.
DEBUG_FLAG_DUMB_CLIENT = 1
Flag is set if the remotely debugged project is expected to use the remote file system. If set, gen_export_flags() will append --remote-fs and --remote-fs-password (if EditorSettings.filesystem/file_server/password is defined) command line arguments to the returned list.
DEBUG_FLAG_REMOTE_DEBUG = 2
Flag is set if remote debug is enabled. If set, gen_export_flags() will append --remote-debug and --breakpoints (if breakpoints are selected in the script editor or added by the plugin) command line arguments to the returned list.
DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST = 4
Flag is set if remotely debugged project is running on the localhost. If set, gen_export_flags() will use localhost instead of EditorSettings.network/debug/remote_host as remote debugger host.
DEBUG_FLAG_VIEW_COLLISIONS = 8
Flag is set if the "Visible Collision Shapes" remote debug option is enabled. If set, gen_export_flags() will append the --debug-collisions command line argument to the returned list.
DEBUG_FLAG_VIEW_NAVIGATION = 16
Flag is set if the "Visible Navigation" remote debug option is enabled. If set, gen_export_flags() will append the --debug-navigation command line argument to the returned list.