<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=.NET_MAUI%3A_Workload-Version_und_Xcode_festlegen</id>
	<title>.NET MAUI: Workload-Version und Xcode festlegen - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=.NET_MAUI%3A_Workload-Version_und_Xcode_festlegen"/>
	<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=.NET_MAUI:_Workload-Version_und_Xcode_festlegen&amp;action=history"/>
	<updated>2026-10-17T10:12:19Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in maxTechCorner</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://techcorner.max-it.de/index.php?title=.NET_MAUI:_Workload-Version_und_Xcode_festlegen&amp;diff=4317&amp;oldid=prev</id>
		<title>imported&gt;TechCorner-Redaktion: Neufassung von &quot;Xamarin.iOS:Downgrade der Entwicklungsumgebung&quot;: Workload Sets, global.json, xcode-select</title>
		<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=.NET_MAUI:_Workload-Version_und_Xcode_festlegen&amp;diff=4317&amp;oldid=prev"/>
		<updated>2026-10-14T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Neufassung von &amp;quot;Xamarin.iOS:Downgrade der Entwicklungsumgebung&amp;quot;: Workload Sets, global.json, xcode-select&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Steckbrief&lt;br /&gt;
| gilt_fuer   = .NET MAUI 9/10, .NET SDK ab 8.0.400 (Workload Sets), Xcode 26/27 auf macOS&lt;br /&gt;
| bereich     = Softwareentwicklung&lt;br /&gt;
| dauer       = 15–60 Minuten (inkl. Xcode-Download)&lt;br /&gt;
| rechte      = Administrator auf Windows-PC und Mac&lt;br /&gt;
| stand       = Oktober 2026&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Workload-Version und Xcode festlegen&amp;#039;&amp;#039;&amp;#039; ist bei .NET MAUI die moderne Form des „Downgrades“: Bringt ein Update der Entwicklungsumgebung Fehler mit oder verlangt eine neuere Xcode-Version, als auf dem Mac installiert ist, schreiben Sie per &amp;lt;code&amp;gt;global.json&amp;lt;/code&amp;gt; eine bekannte, funktionierende Kombination aus .NET SDK und Workload-Set fest – für alle Entwickler und den Build-Server gleich. Das manuelle Löschen von Frameworks wie zu Xamarin-Zeiten entfällt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:NET-MAUI-Workload-Xcode.png|thumb|center|750px|Workload-Set und Xcode-Version gehören zusammen: per global.json festschreiben, passende Workloads installieren und Xcode mit xcode-select auswählen.]]&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
* Nach einem Update von Visual Studio oder des .NET SDK bricht der iOS-Build ab mit: &amp;#039;&amp;#039;„This version of .NET for iOS (…) requires Xcode 27.0. The current version of Xcode is 26.6.“&amp;#039;&amp;#039;&lt;br /&gt;
* Eine neue MAUI-Version enthält einen Fehler, der die App unbrauchbar macht.&lt;br /&gt;
* Entwickler und Build-Server bauen mit unterschiedlichen Workload-Versionen und erhalten unterschiedliche Ergebnisse.&lt;br /&gt;
&lt;br /&gt;
== Ursache ==&lt;br /&gt;
Jede Version der .NET-Workloads für iOS, Mac Catalyst und macOS ist an eine bestimmte Xcode-Version gebunden. Visual Studio und &amp;lt;code&amp;gt;dotnet workload update&amp;lt;/code&amp;gt; aktualisieren die Workloads automatisch auf das neueste &amp;#039;&amp;#039;&amp;#039;Workload Set&amp;#039;&amp;#039;&amp;#039; – Xcode auf dem Mac bleibt dabei unverändert.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
=== Schritt 1: Installierte Versionen ermitteln ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dotnet --version&lt;br /&gt;
dotnet workload --version        # aktuelles Workload-Set, z. B. 10.0.401.1&lt;br /&gt;
dotnet workload list&lt;br /&gt;
xcodebuild -version              # auf dem Mac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schritt 2: Workload-Set festschreiben ===&lt;br /&gt;
Im Stammverzeichnis der Projektmappe eine &amp;lt;code&amp;gt;global.json&amp;lt;/code&amp;gt; anlegen bzw. ergänzen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;sdk&amp;quot;: {&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;10.0.401&amp;quot;,&lt;br /&gt;
    &amp;quot;workloadVersion&amp;quot;: &amp;quot;10.0.401&amp;quot;,&lt;br /&gt;
    &amp;quot;rollForward&amp;quot;: &amp;quot;disable&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die passende Kombination aus Workload-Set und Xcode steht in den Release Notes von .NET for iOS bzw. .NET MAUI.&lt;br /&gt;
&lt;br /&gt;
Dann die Workloads in genau dieser Version installieren:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dotnet workload install maui --version 10.0.401&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Auf dem Mac mit &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; ausführen. Bei Pair to Mac überträgt Visual Studio die passenden Komponenten automatisch.&lt;br /&gt;
&lt;br /&gt;
=== Schritt 3: Passende Xcode-Version auswählen ===&lt;br /&gt;
Mehrere Xcode-Versionen können parallel installiert sein (z. B. &amp;lt;code&amp;gt;/Applications/Xcode_26.6.app&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/Applications/Xcode.app&amp;lt;/code&amp;gt;). Ältere Versionen gibt es im Apple-Developer-Portal unter &amp;#039;&amp;#039;More Downloads&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo xcode-select -s /Applications/Xcode_26.6.app&lt;br /&gt;
xcodebuild -version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bei Pair to Mac verwendet Visual Studio die mit &amp;lt;code&amp;gt;xcode-select&amp;lt;/code&amp;gt; ausgewählte Version; nach dem Umschalten die Verbindung zum Mac neu herstellen.&lt;br /&gt;
&lt;br /&gt;
=== Schritt 4: Aufräumen und neu bauen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rm -rf bin obj&lt;br /&gt;
dotnet build -f net10.0-ios&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nur vorübergehend:&amp;#039;&amp;#039;&amp;#039; Apple akzeptiert im App Store nur Builds mit aktuellen Xcode-Versionen. Ein festgeschriebenes älteres Set überbrückt Probleme, ersetzt aber nicht das Update.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wieder aktualisieren:&amp;#039;&amp;#039;&amp;#039; Eintrag &amp;lt;code&amp;gt;workloadVersion&amp;lt;/code&amp;gt; entfernen bzw. erhöhen und &amp;lt;code&amp;gt;dotnet workload update&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CI/CD:&amp;#039;&amp;#039;&amp;#039; Auf Build-Agents die &amp;lt;code&amp;gt;global.json&amp;lt;/code&amp;gt; mit einchecken und die gewünschte Xcode-Version im Pipeline-Skript auswählen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Xamarin-Altprojekte:&amp;#039;&amp;#039;&amp;#039; Für Xamarin gibt es keine neuen Versionen mehr; Downgrades lösen dort keine Store-Probleme. Siehe [[Von Xamarin zu .NET MAUI migrieren]].&lt;br /&gt;
* Bei Build-Pipelines und App-Veröffentlichung unterstützt Sie die [https://www.max-it.de/development/individuelle-softwareentwicklung/ individuelle Softwareentwicklung von m.a.x. it].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[.NET MAUI: Entwicklungsumgebung einrichten]]&lt;br /&gt;
* [[.NET MAUI: UnauthorizedAccessException beim Build beheben]]&lt;br /&gt;
* [[Von Xamarin zu .NET MAUI migrieren]]&lt;br /&gt;
&lt;br /&gt;
== Links und Quellen ==&lt;br /&gt;
* [https://learn.microsoft.com/de-de/dotnet/core/tools/dotnet-workload-sets Microsoft Learn: dotnet workload sets]&lt;br /&gt;
* [https://www.max-it.de/development/individuelle-softwareentwicklung/ Individuelle Softwareentwicklung und App-Entwicklung von m.a.x. it]&lt;br /&gt;
&lt;br /&gt;
{{Uebermax}}&lt;br /&gt;
[[Kategorie:Softwareentwicklung]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;TechCorner-Redaktion</name></author>
	</entry>
</feed>