### 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
String json_description = "{\"images\":[";
	String sizes;
	Ref<DirAccess> da = DirAccess::open(p_iconset_dir);
	if (da.is_null()) {
		add_message(EXPORT_MESSAGE_ERROR, TTR("Export Icons"), vformat(TTR("Could not open a directory at path \"%s\"."), p_iconset_dir));
		return ERR_CANT_OPEN;
	}
	Color boot_bg_color = GLOBAL_GET("application/boot_splash/bg_color");
	for (uint64_t i = 0; i < (sizeof(icon_infos) / sizeof(icon_infos[0])); ++i) {
		IconInfo info = icon_infos[i];
		int side_size = String(info.actual_size_side).to_int();
		String icon_path = p_preset->get(info.preset_key);
		if (icon_path.length() == 0) {
			
			icon_path = GLOBAL_GET("application/config/icon");
			Ref<Image> img = memnew(Image);
			Error err = ImageLoader::load_image(icon_path, img);
			if (err != OK) {
				add_message(EXPORT_MESSAGE_ERROR, TTR("Export Icons"), vformat("Invalid icon (%s): '%s'.", info.preset_key, icon_path));
				return ERR_UNCONFIGURED;
			} else if (info.force_opaque && img->detect_alpha() != Image::ALPHA_NONE) {
				add_message(EXPORT_MESSAGE_WARNING, TTR("Export Icons"), vformat("Icon (%s) must be opaque.", info.preset_key));
				img->resize(side_size, side_size, (Image::Interpolation)(p_preset->get("application/icon_interpolation").operator int()));
				Ref<Image> new_img = Image::create_empty(side_size, side_size, false, Image::FORMAT_RGBA8);
				new_img->fill(boot_bg_color);
				_blend_and_rotate(new_img, img, false);
				err = new_img->save_png(p_iconset_dir + info.export_name);
			} else {
				img->resize(side_size, side_size, (Image::Interpolation)(p_preset->get("application/icon_interpolation").operator int()));
				err = img->save_png(p_iconset_dir + info.export_name);