Releases: unoplatform/uno
5.6.70
What's Changed
- fix: Fix DataContext lost on second HR on Android (backport #19524) by @mergify in #19529
- Default
Date
/Calendar
picker dates (backport #19519) by @mergify in #19532 - feat: Add UnoSdkVersion MSBuild property (backport #19526) by @mergify in #19530
- fix(listview): unloading and reloading a ListView should keep the scroll position (backport #19496) by @mergify in #19541
- fix: Drag and Drop initialization on mobile (backport #19535) by @mergify in #19546
- docs: Adjust desktop publishing (backport #19447) by @mergify in #19549
- docs: Update xaml merge docs (backport #18879) by @mergify in #19554
- fix(vsix): Relax global.json parsing (backport #19537) by @mergify in #19556
- fix(hr): Ignore bin and obj folders (backport #19528) by @mergify in #19560
Full Changelog: 5.6.61...5.6.70
5.6.61
What's Changed
- fix: Use newer project capability for WSL in VS 17.13 (backport #19373) by @mergify in #19382
- HR Docs updates (backport #19359) by @mergify in #19386
- ci: Adjust tagging and publishing (backport #19396) by @mergify in #19397
- fix(textbox): fix TextProperty change propagation in xBind (backport #19104) by @mergify in #19391
- fix(nativeframepresenter): fix !AndroidUnloadInactivePages optimizations (backport #19094) by @mergify in #19394
- fix:
UniformGridLayout
andItemsRepeater
in nested layout (backport #19287) by @mergify in #19395 - fix: Make sure to generate OriginalSourceLocation property on DataTemplates (backport #19389) by @mergify in #19400
- fix(hr): Misc updates on HR (backport #19387) by @mergify in #19401
- fix: Fix possible null ref (backport #19411) by @mergify in #19417
- fix(TextBlock): [Wasm] Clear old text when setting text through inlines (backport #19390) by @mergify in #19423
- fix(hr): Fix ENC1002 when dealing with event handlers (backport #19418) by @mergify in #19431
- docs: Miscellaneous docs updates and improvements (backport #19416) by @mergify in #19439
- docs: improve Uno.SDK package version override (backport #19413) by @mergify in #19441
- fix(hr): Add dummy class at the end of the generated file (backport #19436) by @mergify in #19446
- fix(vs): Use single TFM build feature from VS (backport #19440) by @mergify in #19445
- fix(vs): Adjust for initialization delay and skipped synchronization (backport #19455) by @mergify in #19462
- fix(hr): Don't import Microsoft.IO.RecyclableMemoryStream using nuget (backport #19438) by @mergify in #19453
- fix(trim): Adjust linker generator input and output paths for
UseArtifactsOutput
(backport #19466) by @mergify in #19469 - fix(hr): Remove unrelated assemblies from other TFMs for Hot Reload (backport #19463) by @mergify in #19470
- fix: Pack add-ins discovery targets with the dev-server (backport #19464) by @mergify in #19473
- docs: Adjust status health page (backport #19444) by @mergify in #19452
- feat: Prevent HRI to move out of area by inertia (backport #19479) by @mergify in #19483
- fix(hr): Properly detect android for HR workaround (backport #19478) by @mergify in #19487
- fix: CaptionVisibility typo (backport #19449) by @mergify in #19477
- fix(pointers): Fix invalid timestamp causing incredible inertia on macOS (backport #19476) by @mergify in #19481
- fix: Android 15 window insets calculation (backport #19474) by @mergify in #19498
- Android insets handling continued (backport #19501) by @mergify in #19506
- Android Insets Part 3 (+
DiagnosticOverlay
positioning, AndroidX update) (backport #19510) by @mergify in #19512
Full Changelog: 5.6.33...5.6.61
5.6.30
In Uno Platform 5.6, our first release of 2025, we’re doubling down on what matters most to you — productivity, performance, and seamless cross-platform development experiences. There are major advancements across the board, from faster Hot Reload and expanded app packaging support to significant runtime and memory optimizations.
- Hot Reload continues to evolve and lead the .NET ecosystem. As it is the foundation of Hot Design, our next-generation visual designer, nothing short of an amazing Hot Reload experience will satisfy us.
- App packaging is now even easier, with new support for
.pkg
and.dmg
formats, code signing, notarization, and destructive mode Snap package creation for CI environments. - Performance improvements across Uno Platform include up to 10x faster execution for Wasm AOT, more efficient visual states, and memory optimizations that make apps leaner and faster.
Take a look at our blog post for now details!
See below for the full change log.
Features
- Add Color resources to ResourcesExtractor (7d9a654)
- Add Microsoft.Windows.AppLifecycle to Sync generator (96ac958)
- Add missing contracts to ApiInformation (0fe8895)
- Add native embedding to netXX-desktop/macOS (66daa65)
- Add support for AppWindow.Show methods (c9305c4)
- Add XAML resources UPRI trimming (0dfd176)
- Allow selecting custom values on Selector (8b6a5d3)
- Allow simulating touch input in Samples app (2a243c9)
- hr: Add ability to remove root of a DataTemplate with HR without cnomua (545e109)
- hr: Remove deprecated XAML and partial reload HR modes (a46202a)
- Implement pattern/template grammar for DateTimeFormatter (c8c6a43)
- implement ShapeVisual.ViewBox (0a0c855)
- implement the X Input extension to support touch input, smooth scrolling, etc. (071570e)
- In app review on Android (760205a)
- InputPropertyAttribute (493ede4)
- Listen to trat changes on iOS 17+ (3cafa43)
- macOS: override ms-appx location when app is bundled (05f21e6)
- Microsoft.Windows.AppLifecycle contract (b4619da)
- Simulate preview key events for tests (61c80df)
- Uno.UI.GooglePlay (61041ae)
- Use SIMD to compage images in a test to accelerate builds. (f1883d1)
- Warn the user when native frame is used with WinUI Frame behavior (e7a0788)
Performance Improvements
- anim: Don't refresh triggers and transitions during parsing (ec3ab58)
- anim: Register only once to the JS animationframe callback (2b303b6)
- brush: Don't use reflection to invoke brush updates (679b4bf)
- Enable ResourceDictionary "not found" caching (6f696d4)
- limit JavaStringCache entries to deal with excessive GREF counts (deff175)
- optimize opacity filter allocations (91be36d)
- reduce SKPaint and SKPath allocations (9264d5e)
- wasm: Split methods containing try/catch/finally blocks (c4df6bf)
Bug Fixes
- add minimum API HttpRequestHeaderCollection to work (c781c95)
- Adjust [NotImplemented] on PasswordVault (0202aa8)
- Adjust build for macOS 15/14 for the removal of Xcode 16. (519a059)
- Adjust for outdated rc2 references (ba5b416)
- Adjust implicit package inclusion (aba082d)
- Adjust IsFocusable on Popup (228d4a1)
- Adjust support for InvariantCulture mode support (39931e8)
- Adjust tf reordering for VS 17.12 or later (5e6c681)
- Adjust tf reordering for VS 17.12 or later (d7f3733)
- Adjust the target SDK version of Samples app on Android (dc9da22)
- Adjust TreeHelper to correctly handle native elements (06e9137)
- align DepObjCol indexer behavior with winui (1c01de0)
- Allow closing ContentDIalog after button click cancellation (2aacc68)
- Allow properties to be multi-lines (5813d5b)
- Allow properties to be multi-lines (78fa7d7)
- Always activate window on Activate() (33ebe65)
- android: PointerRoutedEventArgs.GestureEventsAlreadyRaised was reset while bubbling events up (864e00f)
- android: Restore inheritance workaround for android (0222291)
- Apply x:Bind expressions in Resources (5529e7b)
- assets: Adjust project transitive output path (983b96d)
- Avoid duplicate slash in AssetsPathBuilder (e5db20c)
- Avoid handler leak on layout instance (f647e4c)
- Avoid MUX vs WUX type clashes (2143af3)
- Avoid subscribing to touch scroll events twice (546946c)
- change how we handle the keyboard (5b7c0fc)
- ci for macOS (d1ca282)
- codegen: markup-ext improper cast for nullable value-type dp (0ab2847)
- Correcly await async RunOnUIThread calls (7866edc)
- DeferLoadStrategy should work even if no visibility is set (6c198eb)
- Define the working directory for add-in discovery (922f095)
- Deprecated iOS
Launcher
methods (73c27f8) - Do not output PopupPan...
5.5.94
5.5.87
What's Changed
- docs: Adjust MarkupExtension sample (backport #18870) by @mergify in #18877
- docs: Bump bootstrap commit (backport #18845) by @mergify in #18878
- fix(scrollviewer): fix scrollArgs.IsIntermediate on WASm (backport #18883) by @mergify in #18891
- fix: Fix HRI not being draggable (backport #18873) by @mergify in #18893
- fix: Move to jsimport for bbox (backport #18900) by @mergify in #18905
- fix(net9): Transitive assets handling (backport #18897) by @mergify in #18935
- perf: Don't use multicast delegates for DependencyObjectCollection.VectorChanged (backport #18910) by @mergify in #18936
- perf(brush): Don't use reflection to invoke brush updates (backport #18899) by @mergify in #18940
- fix: Fix logging of add-in discovery (backport #18958) by @mergify in #18965
- docs: Add tip for excluding pages with Uno.Sdk (backport #18963) by @mergify in #18967
- fix(assets): Adjust project transitive output path (backport #18966) by @mergify in #18974
Full Changelog: 5.5.76...5.5.87
5.5.37
Uno Platform 5.5 - Automated App Packaging, .NET 9 RC2, OpenGL, WebView2 and more
Each release, we don’t just improve—we aim to revolutionize your development experience. For this release, we focused on drastically reducing the time and complexity required to package and distribute your cross-platform applications, in addition to a plethora of other productivity and performance features.
Our new App Packaging automates the process of bundling binaries, assets and dependencies into platform-specific installers for Linux, macOS and Windows on desktop. And, yes, that’s in addition to the seamless support we already provide for Mobile and Web packaging. It removes hours of frustration and dozens of manual steps which are typically needed when preparing your app for publishing, with just a few commands or clicks.
In addition to app packaging improvements, we are adding support for .NET 9 RC2 with WebAssembly, OpenGL Support, WebView2, New Skia Canvas, Combo Box and Templated Parent. It’s a big release, grab a coffee and read through our blog post.
At a glance, here are some of the new features:
- Linux Snap, macOS
.app
and ClickOnce packaging support GLCanvasElement
for DesktopSkiaVisual
/SKCanvas
supportWebView2
support on WebAssembly- .NET 9 RC2 support
- .NET 9 WebAssembly bootstrapper support
- Support for
ComboBox.IsEditable
,ComboBox.TextSubmitted
,ComboBox.SelectionChangedTrigger
- Many
TemplatedParent
propagation fixes - Support for
ColorHelper
andKnownColors
- In-App rating support on iOS
- Various DependencyObject performance improvements and memory usage reductions
You can find out the changelog below.
Features
- add a SkiaVisual that allows external use of SkiaSharp (5ff75bd)
- Add ability to configure timeout for file update to work on slow CI (7ab30cc)
- Add ability to send null old content to overwrite file (2cd7ad4)
- Add contract for to allow user interaction in IDE from the dev-server (fc7312c)
- Add discovery of dev-server add-ins (d73066d)
- Add extensiblity support in dev-server (753965d)
- Add message for to add a menu in the IDE (0433d09)
- Add Microsoft.NET.Sdk.WebAssembly support (d3312b2)
- Add more info (86dfaca)
- Allow disabling generated Application.UnhandledException handler (307acc1)
- Allow selecting custom values on Selector (8b6a5d3)
- Allow usage of HR indicator from external tool (2cf2f71)
- Bump Uno.Fonts to 2.4.5 (84a5e72)
- ComboBox.IsEditable (f491c97)
- ComboBox.TextSubmitted (a22f88c)
- Correctly indicate support for DesktopAcrylicController and MicaController (c4ee18a)
- Create IIdeChannel services and register it into DI to be usable by add-ins (2099883)
- Define constants for packaged vs. unpackaged WinAppSDK (2ad6248)
- GlCanvasElement on MacOS (363b8df)
- hr: Add ability to safely handle exceptions in UpdateFile (e5974da)
- hr: Add UpdateFile API (bcabbd2)
- Implement
ColorHelper
(73e0d61) - Implement
KnownColors
(0d604a0) - Implement GetColorNameResourceId (d494270)
- In-app rating request on iOS (672148d)
- InputPropertyAttribute (493ede4)
- introduce the ability to draw using raw OpenGL on skia (ff6e501)
- ios: add webview2 inspectable feature (f8c6ac7)
- iOS: validate for device version (918f34b)
- Make breaking on unhandled exceptions opt-in (48d42f6)
- New DependencyPropertyHelper class (844b8e2)
- Reduce allocations when using AsyncLock (+ remove all dependencies) (6a52019)
- Simulate preview key events for tests (61c80df)
- Support for ComboBox.SelectionChangedTrigger (0d016e2)
- Throw ArgumentNullException if XamlRoot is not provided to VisualTreeHelper (c53c785)
- Update API surface to WinAppSDK 1.6 (abb3fca)
- Update Sync generator to WinAppSDK 1.6 (49ecdae)
- wasm: Remove dependency on js invocation internal calls (c9f9377)
- WebView and WebView2 on WebAssembly (be3a0fb)
- webview2: add feature configuration for ios inspectable (15ed6af)
Bug Fixes
- ActionAppNotificationSettings
Launcher
missing package reference (7b7cb35) - Adjust AddIn path (54da54f)
- Adjust ContentPresenter automatic propagation (8ad591f)
- Adjust IsFocusable on Popup (228d4a1)
- Adjust ScrollContentPresenter measure to prevent infinite available size when necessary (565dd04)
- Adjust the target SDK version of Samples app on Android (dc9da22)
- Adjust TreeHelper to correctly handle native elements (06e9137)
- adjust workaround for android popuppanel layout (72ce4eb)
- android: Restore inheritance workaround for android (0222291)
- Avoid error on SamplesApp.UITests (0641657)
- Avoid infinite layout loop in MediaTransportControls (dbca1b0)
- Button: Command binding resetting on CanExecution exception (82846ba)
- codegen: Adjust mvvm toolkit properties discovery (e94127f)
- Compare the right font in OnFontLoaded when FontFamily contains '#' (3843646)
- Correcly await async RunOnUIThread calls (7866edc)
- desktop will always build as WinEXE ([30437b8](https://github.com/unoplatform/Uno...
5.4.43
5.4.39
What's Changed
- Revert #18381 for layout android issues by @jeromelaban in #18412
Full Changelog: 5.4.38...5.4.39
5.4.38
What's Changed
- fix: adjust workaround for android popuppanel layout (backport #18277) by @mergify in #18343
- Adjust devserver inclusion when WinExe is selected (backport #17974) by @mergify in #18376
- fix: Port "non-clipping subtree" logic from WinUI (backport #18336) by @mergify in #18361
- Backport #18193 and #18377 by @jeromelaban in #18381
- fix(Button): Command binding resetting on CanExecution exception (backport #18378) by @mergify in #18388
- fix: Do not destroy the singleton Window for single-window targets (backport #18369) by @mergify in #18389
- fix: Make AutomationProperties bindable (backport #18306) by @mergify in #18394
- Misc test updates (backport #18387) by @mergify in #18396
Full Changelog: 5.4.27...5.4.38
5.4.27
What's Changed
- Adjust HR error messages when the debugger is active (backport #18270) by @mergify in #18273
- docs: Miscellaneous documentation fixes (backport #18316) by @mergify in #18323
- fix(codegen): Adjust mvvm toolkit properties discovery (backport #18326) by @mergify in #18334
- fix: Ensure wwwroot assets are copied properly (backport #18300) by @mergify in #18310
Full Changelog: 5.4.22...5.4.27