Open tuc0w opened 7 months ago
Same problem here on M2 Pro. Was working fine before. Only major difference is upgrading to macOS 14.4, which has introduced a lot of issues for other apps as well. 4.3-dev5 is working fine.
CC @bruvzg
The difference between the two verbose logs is that the 4.2 one stops here:
Class 'EditorExport' is not exposed, skipping.
Class 'EditorExportGDScript' is not exposed, skipping.
// Stops here
Class 'EditorFeatureProfileManager' is not exposed, skipping.
Class 'EditorFileServer' is not exposed, skipping.
Not sure if that actually means it's failing checking EditorFeatureProfileManager
, or if it just happens to crash for an unrelated reason and the log is last flushed there. #89971 also has a similar log ending on EditorExportGDScript
.
Edit: Ah well it's not EditorFeatureProfileManager
, it's likely one of the intermediate classes which are exposed and thus are instantiated to get their documentation.
So it's probably one of these classes which are exposed and between EditorExportGDScript
and EditorFeatureProfileManager
alphabetically:
Class 'EditorExportPlatform' is exposed.
Class 'EditorExportPlatformAndroid' is exposed.
Class 'EditorExportPlatformIOS' is exposed.
Class 'EditorExportPlatformLinuxBSD' is exposed.
Class 'EditorExportPlatformMacOS' is exposed.
Class 'EditorExportPlatformPC' is exposed.
Class 'EditorExportPlatformWeb' is exposed.
Class 'EditorExportPlatformWindows' is exposed.
Class 'EditorExportPlugin' is exposed.
Class 'EditorFeatureProfile' is exposed.
One of the platform-specific exporter may be the problem.
Edit 2: To be clear, the "is exposed" messages aren't printed normally by Godot, I edited the source to do it.
diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index a7e3c03250..9037d4c396 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -380,6 +380,8 @@ void DocTools::generate(BitField<GenerateFlags> p_flags) {
print_verbose(vformat("Class '%s' is not exposed, skipping.", name));
classes.pop_front();
continue;
+ } else {
+ print_verbose(vformat("Class '%s' is exposed.", name))
}
String cname = name;
I can't reproduce it with 4.2.2-rc2 (checked both mono and standard versions) with any project. Normally there's no Class * is exposed.
messages in the log unless editor_doc_cache.res
is manually deleted. Also, crash usually should show at least signal code in the last line, it's strange that it cuts at normal log line. Tested on macOS 14.4.1 (so if it was 14.4 macOS issue, it might be fixed).
Please check Console.app
for any Godot related crash reports.
If it is related to ExportPlatform*
, it might be something to do with check_for_changes_thread
thread in iOS and Android (but 4.3 have the same). At least it is the only thing that might be an issue that I see. It's probably should be started only when has_runnable_preset
is set.
I have stumbled upon this issue multiple times now, and I think I have an idea what causes it (no idea why though).
When updating macOS the editor stops opening. The workaround, that has worked 100% of the time for me is the following:
After these two steps it works every time for me. (It appears the people at #85563 have figured this out as well, this appears to be the same issue)
Hope this helps
@bruvzg That does seem to confirm another issue with (probably) the iOS one click deploy's dependency on Xcode, whenever Xcode is not in the right state.
Still unclear why it would be 4.2-specific.
There were some changes to avoid calling Xcode and adb unless there's a valid export profile for one-click, maybe some of these were not cherry picked for 4.2.
Wouldn't it still possibly exhibit the same bug when editing a project that has a valid iOS export preset?
I'm not sure what's causing the bug and unable to reproduce it, if Xcode is not installed/updated it should show install prompt not crash or hang (but it seems like it can display in on any device connected to the same Apple account for some reason).
Since this happens during the doc generation step (or cache loading), I don't think the editor is initialized fully yet to display errors.
But taking another angle, we don't want any of this logic to run during doc generation. Can't we defer it to only run when actually in the editor / parsing the configured presets?
I was about to suggest NOTIFICATION_ENTER_TREE
but the class is RefCounted, not Node.
I have stumbled upon this issue multiple times now, and I think I have an idea what causes it (no idea why though).
When updating macOS the editor stops opening. The workaround, that has worked 100% of the time for me is the following:
- Update Xcode to the newest version. This includes the new SDK for the current macOS version.
- You MUST also start Xcode at least once and have it finish installing.
After these two steps it works every time for me. (It appears the people at #85563 have figured this out as well, this appears to be the same issue)
Hope this helps
This is totally working, thank you! ❤️
Tested versions
System information
MacOS Sonoma 14.3.1 - M3 Pro
Issue description
The project explorer works, the editor keeps crashing after opening a project.
The following verbose output using 4.2.2-rc2 were it is crashing:
This is the verbose output from 4.3-dev5 were it is working:
Steps to reproduce
Just create or open any project, no special steps needed.
Minimal reproduction project (MRP)
Just any project.