Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 6 additions & 17 deletions .github/workflows/build-samples-todoapp-uno.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,13 @@ env:
# Debug to avoid that overhead consistently, even where it isn't currently an issue.
DOTNET_CONFIGURATION: 'Debug'
# TodoApp.Uno.csproj is a single Uno.Sdk project with a multi-head TargetFrameworks list
# (net10.0-android;net10.0-ios;net10.0-maccatalyst;net10.0-windows10.0.26100;
# (net10.0-android;net10.0-ios;net10.0-windows10.0.26100;
# net10.0-browserwasm;net10.0-desktop). No single runner can build every head (mobile heads
# need Android/iOS workloads, the Windows head needs windows-latest, etc.), so each job below
# restores/builds one head at a time, scoped via the MSBuild TargetFramework property.
UnoProjectFile: 'samples/todoapp/TodoApp.Uno/TodoApp.Uno/TodoApp.Uno.csproj'
AndroidTargetFramework: 'net10.0-android'
iOSTargetFramework: 'net10.0-ios'
MacCatalystTargetFramework: 'net10.0-maccatalyst'
WindowsTargetFramework: 'net10.0-windows10.0.26100'
BrowserWasmTargetFramework: 'net10.0-browserwasm'
DesktopTargetFramework: 'net10.0-desktop'
Expand Down Expand Up @@ -56,8 +55,8 @@ jobs:
--configuration ${{ env.DOTNET_CONFIGURATION }}
--no-restore

ios-maccatalyst:
# iOS and Mac Catalyst builds both require Xcode, which is only available on macOS runners.
ios:
# The iOS build requires Xcode, which is only available on macOS runners.
# Pinned to macos-26 (rather than macos-latest) so the Xcode toolchain doesn't change
# underneath us when the macos-latest label moves. macos-26 replaced the previous
# (older) macOS image because macOS arm64 jobs on that image repeatedly failed to acquire
Expand All @@ -68,7 +67,7 @@ jobs:
# RequiredXcodeVersion below). See https://github.com/CommunityToolkit/Datasync/issues/627.
runs-on: macos-26
env:
# `dotnet workload install ios maccatalyst` with no `--version` resolves the newest published
# `dotnet workload install ios` with no `--version` resolves the newest published
# workload set, which can move to an iOS SDK pack that needs an Xcode that isn't on the
# runner image yet. As of workload set 10.0.115 that's Microsoft.iOS.Sdk.net10.0_27.2, which
# requires Xcode 27.2 (macos-26 only has Xcode 26.x), and the build fails with
Expand Down Expand Up @@ -100,8 +99,8 @@ jobs:
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Install iOS and Mac Catalyst workloads
run: dotnet workload install ios maccatalyst --version ${{ env.WorkloadSetVersion }}
- name: Install iOS workload
run: dotnet workload install ios --version ${{ env.WorkloadSetVersion }}

- name: Restore Uno project (iOS TFM only)
run: dotnet restore ${{ env.UnoProjectFile }} -p:TargetFramework=${{ env.iOSTargetFramework }}
Expand All @@ -113,16 +112,6 @@ jobs:
--configuration ${{ env.DOTNET_CONFIGURATION }}
--no-restore

- name: Restore Uno project (Mac Catalyst TFM only)
run: dotnet restore ${{ env.UnoProjectFile }} -p:TargetFramework=${{ env.MacCatalystTargetFramework }}

- name: Build Uno project (Mac Catalyst TFM only)
run: >
dotnet build ${{ env.UnoProjectFile }}
-f ${{ env.MacCatalystTargetFramework }}
--configuration ${{ env.DOTNET_CONFIGURATION }}
--no-restore

windows:
runs-on: windows-latest
steps:
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ far more reliable than trying to reproduce that locally.
**Timing:** a full `Build Samples` run across all sample projects takes
approximately **6 minutes** end-to-end. Individual jobs (e.g.
`todoapp-blazor-wasm`) typically finish in well under a minute, but slower
jobs (Windows, Uno iOS/maccatalyst) can take several minutes each, and they
jobs (Windows, Uno iOS) can take several minutes each, and they
run in parallel. Plan polling/wait times accordingly — don't assume the run
is stuck if it's still going after a minute or two; do check back in if it
hasn't completed after ~6-8 minutes.
1 change: 1 addition & 0 deletions docs/samples/todoapp/unoplatform.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The Uno Platform sample uses an in-memory Sqlite store for storing its data. To
* Open `samples/todoapp/TodoApp.Uno/TodoApp.Uno.sln` in Visual Studio.
* Select a target (in the top bar), then press F5 to run the application.
* For Windows, select **TodoApp.Uno (WinAppSDK Packaged)**.
* For macOS, Linux or Windows (Skia rendering), select the `net10.0-desktop` head. This is the supported way to run the sample on macOS.
* For other platforms, select the correct emulator or simulator from the target selection drop-down.

If you bump into issues at this point, ensure you can properly develop and run Uno Platform applications for the desktop outside of the datasync service.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ See documentation about assets here: https://github.com/unoplatform/uno/blob/mas

### Table of scales

| Scale | WinUI | iOS/MacCatalyst | Android |
| Scale | WinUI | iOS | Android |
|-------|:-----------:|:---------------:|:-------:|
| `100` | scale-100 | @1x | mdpi |
| `125` | scale-125 | N/A | N/A |
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

16 changes: 6 additions & 10 deletions samples/todoapp/TodoApp.Uno/TodoApp.Uno/TodoApp.Uno.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Uno.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0-android;net10.0-ios;net10.0-maccatalyst;net10.0-windows10.0.26100;net10.0-browserwasm;net10.0-desktop</TargetFrameworks>
<TargetFrameworks>net10.0-android;net10.0-ios;net10.0-windows10.0.26100;net10.0-browserwasm;net10.0-desktop</TargetFrameworks>

<OutputType>Exe</OutputType>
<UnoSingleProject>true</UnoSingleProject>
Expand Down Expand Up @@ -59,23 +59,19 @@
-->
<SuppressTrimAnalysisWarnings Condition="
$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' OR
$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst' OR
$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'browserwasm'
">true</SuppressTrimAnalysisWarnings>

<!--
MT7156: Uno.Resizetizer (unoresizetizer) rasterizes each SVG-sourced asset
(Assets/Icons/icon_foreground.svg, Assets/Images/back.svg, Assets/Splash/splash_screen.svg)
into both an unscaled base PNG and an explicit "scale-100" variant. On ios/maccatalyst these
collapse to the same BundleResource LogicalName (Apple bundling treats unscaled and "1x" as
identical), so one copy is silently dropped - benign, expected Resizetizer output on these
TFMs, not a duplicate-inclusion bug in this project's Assets/UnoIcon/UnoSplashScreen wiring.
into both an unscaled base PNG and an explicit "scale-100" variant. On ios this
collapses to the same BundleResource LogicalName (Apple bundling treats unscaled and "1x" as
identical), so one copy is silently dropped - benign, expected Resizetizer output on this
TFM, not a duplicate-inclusion bug in this project's Assets/UnoIcon/UnoSplashScreen wiring.
See #541.
-->
<MSBuildWarningsAsMessages Condition="
$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' OR
$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'
">$(MSBuildWarningsAsMessages);MT7156</MSBuildWarningsAsMessages>
<MSBuildWarningsAsMessages Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">$(MSBuildWarningsAsMessages);MT7156</MSBuildWarningsAsMessages>

<!--
e_sqlite3 (bundled via SQLitePCLRaw.bundle_e_sqlite3, pinned for #492) exposes variadic
Expand Down
Loading