06/12/2023
At navigere i landskabet af mobiludvikling kan være en kompleks affære, især når det kommer til at sikre kompatibilitet mellem forskellige værktøjer og platforme. For Xamarin-udviklere, der arbejder med Visual Studio, er et af de hyppigste knudepunkter forholdet mellem Xamarin.iOS-versioner, Xcode på Mac og de forskellige udgaver af Visual Studio – især i overgangen fra Visual Studio 2019 til 2022. Denne artikel dykker ned i de udfordringer, du måtte møde, og giver dig den mest opdaterede viden om, hvordan du optimerer dit Xamarin-udviklingsmiljø for succes.

Xamarin har længe været en foretrukken løsning for udviklere, der ønsker at bygge native mobilapps til iOS og Android ved hjælp af C# og dele kode på tværs af platforme. Selvom Xamarin.Forms er ved at udvikle sig til .NET MAUI, er der stadig et stort antal eksisterende Xamarin-projekter, der kræver vedligeholdelse og videreudvikling. Nøglen til en problemfri udviklingsproces ligger i at have det rigtige værktøjssæt og de korrekte versioner på plads.
Hvad er Xamarin, og hvorfor vælge det?
Xamarin er et open source-framework fra Microsoft, der gør det muligt for udviklere at skabe native mobilapplikationer til iOS, Android og UWP (Universal Windows Platform) ved hjælp af C# og .NET. Hovedfordelen ved Xamarin er evnen til at genbruge op til 90% af koden på tværs af platforme, hvilket reducerer udviklingstid og omkostninger markant. Dette gøres muligt gennem Xamarin.Forms, der tilbyder et fælles UI-framework, eller Xamarin.iOS og Xamarin.Android, der giver direkte adgang til platformspecifikke API'er.
For mange virksomheder og udviklere er Xamarin stadig en robust løsning på grund af dets integration med Visual Studio, adgang til det store .NET-økosystem og muligheden for at levere ægte native ydeevne og brugeroplevelse. Selvom fokus skifter mod .NET MAUI, er forståelse og korrekt opsætning af Xamarin-miljøet fortsat afgørende for nuværende projekter.
Xamarin og Visual Studio: En Nødvendig Duo
Visual Studio er den primære IDE (Integrated Development Environment) for Xamarin-udvikling på Windows. For at kunne bygge, debugge og implementere iOS-applikationer fra Visual Studio på Windows kræves der dog en Mac-maskine som en 'build host'. Denne Mac håndterer kompilering og signering af iOS-applikationer ved hjælp af Xcode. Det er netop her, versioneringsudfordringerne ofte opstår.
Udfordringer med Xamarin.iOS og Xcode-kompatibilitet
Apple opdaterer jævnligt Xcode, og med hver større opdatering kommer der ofte nye SDK'er (Software Development Kits) og krav til de værktøjer, der bruges til at bygge iOS-apps. Dette betyder, at din Xamarin.iOS-version på din Windows-maskine skal være kompatibel med den Xcode-version, der kører på din Mac build host. Hvis din Mac har en nyere Xcode-version, end hvad din Visual Studio Xamarin.iOS understøtter, vil du opleve fejl under kompilering eller slet ikke kunne oprette forbindelse.
Brugerens problem med Visual Studio 2019, der stadig bruger Xamarin.iOS 15.2.0.17, mens Mac'en er opdateret til 15.4.0.0 for at understøtte en nyere Xcode-version, er et klassisk eksempel på denne udfordring. Den primære årsag er, at opdateringer til Xamarin.iOS ofte følger med opdateringer til Visual Studio selv, og de seneste versioner og funktioner (inklusive Xcode-kompatibilitet) typisk frigives først på 'Preview'-kanaler eller i de nyeste stabile udgaver af Visual Studio.
Visual Studio 2019 vs. Visual Studio 2022 til Xamarin-udvikling
Valget af Visual Studio-version er afgørende for en problemfri Xamarin-udviklingsoplevelse, især med hensyn til iOS-kompatibilitet. Visual Studio 2019 er ikke længere den nyeste version, og som sådan modtager den sjældnere de seneste Xamarin.iOS-opdateringer, der er nødvendige for at understøtte de nyeste Xcode-versioner.
- Visual Studio 2019 (Stabil): Selvom den er stabil, er den ikke længere førende, når det kommer til de nyeste Xamarin-funktioner og Xcode-kompatibilitet. Den version af Xamarin.iOS, den inkluderer, kan hurtigt blive forældet i forhold til Apples hurtige opdateringscyklus. Dette kan føre til krav om at nedgradere Xcode på din Mac, hvilket sjældent er en ideel løsning.
- Visual Studio 2022 (Preview): Denne kanal modtager de nyeste funktioner og rettelser, herunder opdaterede Xamarin.iOS-versioner (som brugeren oplevede med 15.3.0.41). Selvom den giver tidlig adgang til kompatibilitet, er 'Preview'-versioner ikke altid lige stabile og anbefales typisk ikke til produktionsarbejde.
- Visual Studio 2022 (Stabil): Dette er den anbefalede version for ny Xamarin-udvikling og for at opretholde kompatibilitet med de seneste Xcode-opdateringer. Microsoft prioriterer opdateringer til den seneste stabile version af Visual Studio, hvilket sikrer, at du har adgang til de nødvendige Xamarin.iOS-komponenter i tide. Brugerens overvejelse om at geninstallere Visual Studio 2022 stabil er absolut den rigtige vej at gå. Det er mere sandsynligt, at Visual Studio 2022 stabil vil have den Xamarin.iOS-version, der er nødvendig for at matche din Mac's opdaterede Xcode, uden at du behøver at ty til nedgraderinger.
Her er en sammenligningstabel, der opsummerer forskellene:
| Funktion | Visual Studio 2019 (Stabil) | Visual Studio 2022 (Stabil) | Visual Studio 2022 (Preview) |
|---|---|---|---|
| Anbefalet til Xamarin | Mindre aktuelt for nyeste Xcode | Ja (mest anbefalede) | Ja (for tidlig adgang) |
| Xamarin.iOS Opdateringer | Langsommere og færre | Regelmæssige og rettidige | Først til at modtage |
| Xcode Kompatibilitet | Kan kræve nedgradering af Xcode | God og løbende opdateret | Fremragende (første adgang) |
| Generel Stabilitet | Høj | Meget høj | Varierende (kan have bugs) |
| Bedst til Produktion | Ja (hvis kompatibelt) | Ja | Nej (medmindre grundigt testet) |
Installation og Konfiguration af Xamarin i Visual Studio 2022
At installere Xamarin-udviklingsværktøjer i Visual Studio 2022 er en ligetil proces, men det er vigtigt at sikre, at de korrekte 'workloads' er valgt:
- Åbn Visual Studio Installer: Søg efter "Visual Studio Installer" i din Windows-startmenu og åbn den.
- Modificer Visual Studio 2022: Find din installation af Visual Studio 2022 (stabil) og klik på knappen "Modificer".
- Vælg 'Mobile development with .NET' workload: Under fanen 'Workloads' skal du sikre dig, at 'Mobile development with .NET' er markeret. Dette inkluderer alle de nødvendige komponenter til Xamarin-udvikling, herunder Xamarin.iOS og Xamarin.Android.
- Valgfrie komponenter: Gennemgå 'Individuelle komponenter' for at sikre, at der ikke mangler noget specifikt for dine behov, f.eks. specifikke Android SDK-versioner eller emulatorer.
- Installer: Klik på 'Modificer' eller 'Installer' for at anvende ændringerne.
Efter installationen skal du sikre dig, at din Mac build host er korrekt konfigureret og parret med Visual Studio. Dette gøres via 'Pair to Mac' funktionen i Visual Studio (Værktøjer > iOS > Par til Mac).
Håndtering af App-ikoner og Launch Screens i Xamarin.Forms
Udover kompatibilitetsudfordringer oplever mange udviklere også problemer med at tilpasse app-ikoner og launch screens. Disse er afgørende for din apps visuelle identitet og brugeroplevelse. Lad os se på, hvordan du løser disse almindelige problemer.
App-ikoner
For iOS-applikationer håndteres app-ikoner via 'Asset Catalogs' (Assets.xcassets) i dit iOS-projekt. Selvom du placerer ikonerne her, er det afgørende, at du fortæller din Info.plist-fil, hvor den skal finde dem:
- Opret ikoner i Asset Catalogs: I dit iOS-projektmappe finder du
Assets.xcassets. Åbn dette (det åbner i en Xcode-lignende editor i Visual Studio eller en faktisk Xcode på Mac). Her skal du oprette et nyt "App Icons & Launch Images" sæt og trække dine ikonbilleder ind i de relevante størrelser. - Konfigurer Info.plist: Åbn
Info.plist-filen i dit iOS-projekt. Under sektionen 'Visual Assets' eller 'App Icons', skal du sikre dig, at feltet 'Source' er indstillet til navnet på dit ikon-sæt iAssets.xcassets(f.eks. 'AppIcon'). Hvis du har ændret navnet på dit ikon-sæt, skal det afspejles her. - Ryd og genopbyg: Efter at have foretaget ændringer i ikoner eller
Info.plist, er det ofte nødvendigt at 'rydde' (Clean) din løsning og derefter 'genopbygge' (Rebuild) den for at sikre, at de nye ressourcer bliver kompileret og pakket korrekt.
Launch Screens (Startskærme)
Launch screens er det første, brugerne ser, når din app starter, og de er med til at give en hurtig og flydende overgang til appens indhold. For iOS-apps håndteres launch screens traditionelt via LaunchScreen.storyboard-filen i dit iOS-projekt.

Hvis du ønsker at indstille et billede som launch screen uden at bruge Xcode's grafiske editor (f.eks. ved at redigere XAML/XML direkte), kan du gøre følgende:
- Åbn
LaunchScreen.storyboardsom XML: Højreklik påLaunchScreen.storyboardi Solution Explorer og vælg 'Åbn med...' (Open With...). Vælg en XML- eller teksteditor. - Indsæt et
UIImageView: Inden for<subviews>-tagget kan du tilføje etUIImageView-element. Dette element er en container for dit billede. For at vise et billede fra dine Asset Catalogs, skal du henvise til det ved navn. Et simpelt eksempel kan se sådan ud (justerx,y,width,heightogimagefor at passe til dit billede og layout):<subviews> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="DitBilledeNavn" id="MinBilledeView" translatesAutoresizingMaskIntoConstraints="NO"> <rect key="frame" x="0" y="0" width="414" height="896"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> </imageView> </subviews> - Placer billedet i Asset Catalogs: Sørg for, at 'DitBilledeNavn' (erstat dette med dit faktiske billedenavn) er tilgængeligt i din
Assets.xcassetssom et 'Image Set'. - Justér layout og constraints: For et responsivt design skal du typisk bruge 'constraints' (begrænsninger) i stedet for faste 'frames'. Hvis du foretrækker at redigere XML'en, kan du tilføje constraints ved hjælp af
<constraints>-tagget. For et fuldskærmsbillede kan du indstillecontentModetilscaleAspectFillog justere rammen til at dække hele skærmen.
For Android-apps er processen for launch screens lidt anderledes og involverer typisk en SplashActivity, der viser et drawable-resurse, eller en tema-baseret launch screen via styles.xml.
Fremtiden for Xamarin: Overgangen til .NET MAUI
Det er vigtigt at bemærke, at Xamarin.Forms er blevet efterfulgt af .NET MAUI (Multi-platform App UI). .NET MAUI er den næste generation af tværplatformsudvikling fra Microsoft, bygget oven på .NET 6 (og nyere) og designet til at give en endnu mere strømlinet og moderne udviklingsoplevelse. Visual Studio 2022 er den primære IDE for .NET MAUI-udvikling.
Hvis du starter nye mobilprojekter, anbefales det stærkt at overveje .NET MAUI. For eksisterende Xamarin-projekter er der en migreringsvej til .NET MAUI, som kan hjælpe med at modernisere din applikation og drage fordel af de nyeste .NET-funktioner.
Ofte Stillede Spørgsmål (FAQ)
Kan jeg udvikle iOS-apps på Windows uden en Mac?
Nej, for at bygge og signere iOS-applikationer kræves der en Mac-maskine med Xcode installeret. Visual Studio på Windows kan parre sig med denne Mac og bruge den som en 'build host' til at kompilere din iOS-kode.
Hvilken version af Visual Studio skal jeg bruge til Xamarin?
For den bedste kompatibilitet med de nyeste Xcode-versioner og for at få adgang til de seneste Xamarin- og .NET MAUI-funktioner, anbefales det at bruge Visual Studio 2022 (stabil).
Hvorfor fungerer mine app-ikoner ikke, selvom jeg har opdateret dem?
Den mest almindelige årsag er, at Info.plist-filen i dit iOS-projekt ikke er opdateret til at pege på den korrekte 'Asset Catalog Source' for dine ikoner. Sørg for, at navnet på dit ikon-sæt i Assets.xcassets stemmer overens med det, der er angivet i Info.plist.
Hvordan opdaterer jeg Xamarin.iOS i Visual Studio?
Xamarin.iOS-opdateringer er typisk bundtet med Visual Studio-opdateringer. For at få den seneste version skal du opdatere din Visual Studio 2022-installation via Visual Studio Installer. Hvis du har brug for de allernyeste versioner (før de er frigivet til den stabile kanal), kan du overveje at installere Visual Studio 2022 Preview.
Er Xamarin "død"?
Nej, Xamarin er ikke 'død'. Xamarin.Forms er udviklet til .NET MAUI, som er fremtiden for tværplatformsudvikling i .NET-økosystemet. Eksisterende Xamarin-projekter understøttes stadig, men nye projekter anbefales at starte med .NET MAUI.
At holde dit udviklingsmiljø opdateret er afgørende for succes med Xamarin. Ved at vælge den rigtige Visual Studio-version, forstå kompatibilitetskravene for Xcode og korrekt håndtere app-ressourcer som ikoner og launch screens, kan du sikre en smidig og effektiv mobiludviklingsproces. Investeringen i at skifte til Visual Studio 2022 stabil vil sandsynligvis spare dig for mange frustrationer og give dig adgang til det bedste værktøjssæt, der er tilgængeligt for Xamarin og fremtidige .NET MAUI-projekter.
Hvis du vil læse andre artikler, der ligner Xamarin Udvikling: VS 2019 vs. VS 2022 Kompatibilitet, kan du besøge kategorien Mobiludvikling.
