-
Notifications
You must be signed in to change notification settings - Fork 743
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust Hot Reload for iOS/Catalyst/Android #15918
Comments
@jeromelabanGiven that dotnet/runtime#93860 has been merged and you've confirmed Hot Reloading is working on that thread, do you have an expected release date for C# Markup Hot Reloading for iOS and Android apps? |
@codesquatch Android should work better, though there's a fix that coming in the next release, iOS is still pending this specific issue. |
@jeromelaban Appreciate the quick response. Unfortunately Hot Reloading is not working for me even on the Android simulator. I'm on Mac OS, VS Code with Uno Platform extension installed and used to build/debug on a |
Thanks. Note that hot reload on android only works when the debugger is not attached. We're waiting on this issue which should improve the story with the debugger on vscode (even if the issue is about VS windows). |
What would you like to be added
C# Hot Reload for iOS/Catalyst fails with:
While this particular validation does not happen in Android, this fails with iOS/Catalyst.
This particular behavior is handled by the source generator here:
uno/src/SourceGenerators/Uno.UI.SourceGenerators/NativeCtor/NativeCtorsGenerator.cs
Lines 165 to 166 in 315067c
And to work around it, we'll need to avoid using the
CreateNewOnMetadataUpdate
and rely on the newest Roslyn to handle lambda captures.Additional information
The only catch for this feature is MetadataUpdateHanders not being supported yet on VS 2022 for iOS/Android (this, this), and updatedTypes not working on wasm (this), which means we still need a way to detect updated types.
Possibly, we could generate internal
CreateNewOnMetadataUpdateAttribute
tagged empty types that mirror the original modified types, so that we can determine what was actually changed and raiseMetadataUpdateHandlers
in Partial Reload.Update: Android randomly fails for a similar reason, where duplicate types are not handled properly by the runtime.
The text was updated successfully, but these errors were encountered: