### Godot version

4.2

### System information

Godot v4.2.stable - macOS 14.1.1 - Vulkan (Mobile) - dedicated AMD Radeon RX 6800

### Issue description

The new [iOS one-click deploy](https://github.com/godotengine/godot/pull/70662) is a great new feature!

When using it with a physical iPhone SE on iOS 17.1.1 (current) and Xcode 15.0.1 (current), the building phase of the export is successful, but then fails on the debug phase:
```
------ Debug phase ------
[...]
2023-11-30 14:42:08.089 ios-deploy[15462:194557] [ !! ] Unable to locate DeviceSupport directory with suffix 'DeveloperDiskImage.dmg'. This probably means you don't have Xcode installed, you will need to launch the app manually and logging output will not be shown!
```

The developers of ios-deploy [indicated](https://github.com/ios-control/ios-deploy/issues/588#issuecomment-1667938056) that Xcode 15 support will probably not be added. There is some additional discussion about it in [this flutter issue](https://github.com/flutter/flutter/issues/133465).

`devicectl` from Apple seems to replace some of the functionality, although it seems like the debug output isn't routed with this tool.

Until a fix or workaround is found, it should probably be documented that `ios-deploy` doesn't support Xcode 15.


### Steps to reproduce

One-click deploy to physical device

### Minimal reproduction project

N/A
Error _copy_asset(const String &p_out_dir, const String &p_asset, const String *p_custom_file_name, bool p_is_framework, bool p_should_embed, Vector<IOSExportAsset> &r_exported_assets);
	Error _export_additional_assets(const String &p_out_dir, const Vector<SharedObject> &p_libraries, Vector<IOSExportAsset> &r_exported_assets);
	Error _export_ios_plugins(const Ref<EditorExportPreset> &p_preset, IOSConfigData &p_config_data, const String &dest_dir, Vector<IOSExportAsset> &r_exported_assets, bool p_debug);
	Error _export_project_helper(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags, bool p_simulator, bool p_skip_ipa);
	bool is_package_name_valid(const String &p_package, String *r_error = nullptr) const;
protected:
	virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const override;
	virtual void get_export_options(List<ExportOption> *r_options) const override;
	virtual bool get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const override;
	virtual String get_export_option_warning(const EditorExportPreset *p_preset, const StringName &p_name) const override;
public:
	virtual String get_name() const override { return "iOS"; }
	virtual String get_os_name() const override { return "iOS"; }
	virtual Ref<Texture2D> get_logo() const override { return logo; }
	virtual Ref<Texture2D> get_run_icon() const override { return run_icon; }
	virtual int get_options_count() const override;
	virtual String get_options_tooltip() const override;
	virtual Ref<ImageTexture> get_option_icon(int p_index) const override;
	virtual String get_option_label(int p_index) const override;
	virtual String get_option_tooltip(int p_index) const override;
	virtual Error run(const Ref<EditorExportPreset> &p_preset, int p_device, int p_debug_flags) override;
	virtual bool poll_export() override {
		bool dc = devices_changed.is_set();
		if (dc) {
			
			devices_changed.clear();
		}
		return dc;
	}
	virtual bool should_update_export_options() override {