From b9dc229983c9f855e0b7a30d32abf42f09e5aaf7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 10 Feb 2026 17:11:46 +0100 Subject: [PATCH 1/5] Update CoreCLR for iOS/tvOS docs --- docs/workflow/building/coreclr/ios.md | 35 ++++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/workflow/building/coreclr/ios.md b/docs/workflow/building/coreclr/ios.md index 3c6b6f9aa76f60..615acf9ecda4ae 100644 --- a/docs/workflow/building/coreclr/ios.md +++ b/docs/workflow/building/coreclr/ios.md @@ -1,6 +1,6 @@ -# Experimental support of CoreCLR on iOS/tvOS +# CoreCLR on iOS/tvOS -This is the internal documentation which outlines experimental support of CoreCLR on iOS/tvOS platforms. +This documentation outlines the support of CoreCLR on iOS/tvOS platforms. ## Table of Contents @@ -10,8 +10,8 @@ This is the internal documentation which outlines experimental support of CoreCL - [Building the runtime, libraries and tools](#building-the-runtime-libraries-and-tools) - [Building and running a sample app](#building-and-running-a-sample-app) - [Building HelloiOS sample](#building-helloios-sample) - - [Running HelloiOS sample on a simulator](#running-helloios-sample-on-a-simulator) -- [Building and running tests on a simulator](#building-and-running-tests-on-a-simulator) + - [Running HelloiOS sample](#running-helloios-sample) +- [Building and running tests](#building-and-running-tests) - [Debugging the runtime and the sample app](#debugging-the-runtime-and-the-sample-app) - [Steps](#steps) - [See also](#see-also) @@ -24,15 +24,19 @@ Supported host systems for building CoreCLR for iOS/tvOS: Supported target platforms: - iOS Simulator ✔ -- tvOS Simulator ❌ (not yet supported) +- tvOS Simulator ✔ - Mac Catalyst ✔ - iOS Device ✔ -- tvOS Device ❌ (not yet supported) +- tvOS Device ✔ Supported target architectures: - x64 ✔ - arm64 ✔ +Supported execution modes: +- Interpreter ✔ +- ReadyToRun (R2R) ✔ + ### macOS #### Prerequisites @@ -56,7 +60,7 @@ Supported target architectures: To build CoreCLR runtime, libraries and tools, run the following command from ``: ```bash -./build.sh clr+clr.runtime+libs+packs -os -arch arm64 -cross -c +./build.sh clr+clr.runtime+libs+packs -os -arch arm64 -cross -c ``` > [!NOTE] @@ -73,17 +77,17 @@ A prerequisite for building and running samples locally is to have CoreCLR succe To build `HelloiOS`, run the following command from ``: ```bash -./dotnet.sh build src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:UseMonoRuntime=false /p:RunAOTCompilation=false /p:MonoForceInterpreter=false +./dotnet.sh build src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:UseMonoRuntime=false ``` On successful execution, the command will output the iOS app bundle. -### Running HelloiOS sample on a simulator +### Running HelloiOS sample -To run the sample on a simulator, run the following command from ``: +To run the sample, run the following command from ``: ```bash -./dotnet.sh publish src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:DeployAndRun=true /p:UseMonoRuntime=false /p:RunAOTCompilation=false /p:MonoForceInterpreter=false +./dotnet.sh publish src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:DeployAndRun=true /p:UseMonoRuntime=false ``` The command also produces an Xcode project that can be opened for debugging: @@ -98,24 +102,21 @@ open ./src/mono/sample/iOS/bin/-arm64/Bundle/Hello > xcrun simctl list devices > ``` -## Building and running tests on a simulator +## Building and running tests To build the runtime tests for iOS with CoreCLR, run the following command from ``: ```bash -./src/tests/build.sh -os -p:UseMonoRuntime=false +./src/tests/build.sh -os -p:UseMonoRuntime=false ``` -> [!NOTE] -> Running the tests is not fully implemented yet. It will likely need similar app bundle infrastructure as NativeAOT/iOS uses. - ## Debugging the runtime and the sample app Native debugging is supported through Xcode. You can debug both the managed portion of the sample app and the native CoreCLR runtime. ### Steps -1. Build the runtime and `HelloiOS` sample app in `Debug` configuration. +1. Build the runtime and `HelloiOS` sample app. 2. Open the generated Xcode project: ```bash open ./src/mono/sample/iOS/bin//Bundle/HelloiOS/HelloiOS.xcodeproj From 3edbbb40a868a98dcf198459e3b3f930bd3623b4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 10:13:01 +0100 Subject: [PATCH 2/5] Update docs/workflow/building/coreclr/ios.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/workflow/building/coreclr/ios.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workflow/building/coreclr/ios.md b/docs/workflow/building/coreclr/ios.md index 615acf9ecda4ae..c5f5dec8636735 100644 --- a/docs/workflow/building/coreclr/ios.md +++ b/docs/workflow/building/coreclr/ios.md @@ -60,7 +60,7 @@ Supported execution modes: To build CoreCLR runtime, libraries and tools, run the following command from ``: ```bash -./build.sh clr+clr.runtime+libs+packs -os -arch arm64 -cross -c +./build.sh clr+clr.runtime+libs+packs -os -arch arm64 -cross -c ``` > [!NOTE] From a05065e3a09e5974abd9c8a9d1f37615b583e86f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 10:18:20 +0100 Subject: [PATCH 3/5] Update docs/workflow/building/coreclr/ios.md Co-authored-by: Jan Kotas --- docs/workflow/building/coreclr/ios.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workflow/building/coreclr/ios.md b/docs/workflow/building/coreclr/ios.md index c5f5dec8636735..78a6bae6137c40 100644 --- a/docs/workflow/building/coreclr/ios.md +++ b/docs/workflow/building/coreclr/ios.md @@ -1,6 +1,6 @@ # CoreCLR on iOS/tvOS -This documentation outlines the support of CoreCLR on iOS/tvOS platforms. +This documentation outlines developer workflows for CoreCLR on iOS/tvOS platforms. ## Table of Contents From 0a460b267f88cfa81d3653d25af8704d2270f8fb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 10:22:59 +0100 Subject: [PATCH 4/5] Update docs --- docs/workflow/building/coreclr/android.md | 2 +- docs/workflow/building/coreclr/ios.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/workflow/building/coreclr/android.md b/docs/workflow/building/coreclr/android.md index 86acc75c13ed4b..c5c5499a1b27c1 100644 --- a/docs/workflow/building/coreclr/android.md +++ b/docs/workflow/building/coreclr/android.md @@ -1,6 +1,6 @@ # Experimental support of CoreCLR on Android -This is the internal documentation which outlines experimental support of CoreCLR on Android. +This documentation outlines developer workflows for CoreCLR on Android platforms. ## Table of Contents diff --git a/docs/workflow/building/coreclr/ios.md b/docs/workflow/building/coreclr/ios.md index 78a6bae6137c40..ed1d4d27e65f5b 100644 --- a/docs/workflow/building/coreclr/ios.md +++ b/docs/workflow/building/coreclr/ios.md @@ -77,7 +77,7 @@ A prerequisite for building and running samples locally is to have CoreCLR succe To build `HelloiOS`, run the following command from ``: ```bash -./dotnet.sh build src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:UseMonoRuntime=false +./dotnet.sh build src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:UseMonoRuntime=false ``` On successful execution, the command will output the iOS app bundle. @@ -87,13 +87,13 @@ On successful execution, the command will output the iOS app bundle. To run the sample, run the following command from ``: ```bash -./dotnet.sh publish src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:DeployAndRun=true /p:UseMonoRuntime=false +./dotnet.sh publish src/mono/sample/iOS/Program.csproj -c /p:TargetOS= /p:TargetArchitecture=arm64 /p:DeployAndRun=true /p:UseMonoRuntime=false ``` The command also produces an Xcode project that can be opened for debugging: ```bash -open ./src/mono/sample/iOS/bin/-arm64/Bundle/HelloiOS/HelloiOS.xcodeproj +open ./src/mono/sample/iOS/bin/-arm64/Bundle/HelloiOS/HelloiOS.xcodeproj ``` > [!NOTE] @@ -107,7 +107,7 @@ open ./src/mono/sample/iOS/bin/-arm64/Bundle/Hello To build the runtime tests for iOS with CoreCLR, run the following command from ``: ```bash -./src/tests/build.sh -os -p:UseMonoRuntime=false +./src/tests/build.sh -os arm64 -p:UseMonoRuntime=false ``` ## Debugging the runtime and the sample app From e91b46833a231b94440c1e23953e7cb2407ad1d6 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Wed, 11 Feb 2026 01:27:01 -0800 Subject: [PATCH 5/5] Update docs/workflow/building/coreclr/android.md --- docs/workflow/building/coreclr/android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workflow/building/coreclr/android.md b/docs/workflow/building/coreclr/android.md index c5c5499a1b27c1..81f2d52b7262a1 100644 --- a/docs/workflow/building/coreclr/android.md +++ b/docs/workflow/building/coreclr/android.md @@ -1,4 +1,4 @@ -# Experimental support of CoreCLR on Android +# CoreCLR on Android This documentation outlines developer workflows for CoreCLR on Android platforms.