05/07/2024
I en verden, hvor mobilapplikationer er blevet uundværlige, har udviklere konstant søgt efter effektive måder at skabe apps på tværs af forskellige platforme. For C# .NET-udviklere kom der i 2011 banebrydende nyheder, da Xamarin annoncerede muligheden for at udvikle iOS-applikationer ved hjælp af C#. Dette åbnede døren for en ny æra af krydsplatformsudvikling. Den største revolution indtraf dog i 2016, da Microsoft opkøbte Xamarin, hvilket gjorde det muligt for alle Visual Studio-udviklere at bygge iOS- og Android-applikationer uden ekstra omkostninger.

Traditionelt har iOS-udviklere kunnet teste deres applikationer i en simulator. Men for at teste på en fysisk enhed har det ofte været et krav at købe en Apple Developer-konto, der koster 99 USD om året. Dette ændrede sig dog markant den 8. juni 2015, da Apple på deres Worldwide Developers Conference (WWDC) annoncerede Xcode version 7. Med Xcode 7 og nyere versioner blev det muligt at udvikle og teste dine apps direkte på din iOS-enhed uden en betalt Apple Developer-konto. Dette var en fantastisk nyhed for alle iOS-udviklere, da det betød, at grundig test på en rigtig enhed kunne udføres gratis, inden appen skulle uploades til App Store.
Denne artikel vil guide dig gennem processen med at installere og køre din Xamarin.iOS-applikation på en fysisk iOS-enhed ved hjælp af den gratis klargøring (free provisioning) metode. Vi vil dække alt fra de nødvendige krav til trin-for-trin installationsinstruktioner og løsninger på almindelige fejl, uanset om du udvikler fra en Mac eller via Xamarin Hot Restart på Windows.
- Krav til Installation og Klartgøring
- Trin-for-trin guide: Installation på iOS-enhed med Xcode
- Xamarin Hot Restart: Udvikling til iOS fra Windows uden en Mac
- Forstå Grundlæggende Xamarin-koncepter
- Hvad med udgivelse til App Store?
- Ofte Stillede Spørgsmål (FAQ)
- Kan jeg bruge Xamarin til iOS-udvikling uden en Mac?
- Har jeg brug for en betalt Apple Developer-konto for at teste min Xamarin-app på en fysisk iOS-enhed?
- Hvad skal jeg gøre, hvis jeg får en "Code Signing"-fejl?
- Hvad er en "Bundle Identifier", og hvorfor er den vigtig?
- Hvorfor skal jeg installere iTunes fra Microsoft Store til Hot Restart?
- Konklusion
Krav til Installation og Klartgøring
Før vi dykker ned i installationsprocessen, er det vigtigt at sikre, at du har de nødvendige værktøjer og opsætninger på plads. Disse krav er fundamentale for en succesfuld udrulning af din Xamarin-app på en iOS-enhed:
- Mac-maskine: For den traditionelle udviklingsproces og for at bruge Xcode er en Mac-maskine med macOS påkrævet.
- Xcode 7 eller nyere: Apple's integrerede udviklingsmiljø (IDE) er afgørende. Gå til din Mac-maskine og verificer din Xcode-version. Hvis den er ældre end version 7, skal du opdatere den. Xcode er nødvendig for at håndtere kodesignering og klargøringsprofiler, selvom du bruger Visual Studio til Xamarin-udvikling.
- iOS 9 eller nyere: Din iOS-enhed skal køre iOS 9 eller en nyere version for at understøtte den gratis klargøringsfunktion.
- Gratis Apple ID: Du skal oprette et gratis Apple ID. Dette ID vil blive brugt til at signere dine applikationer lokalt, uden at du behøver en betalt udviklerkonto. Du kan oprette et på Apple's hjemmeside.
- Visual Studio: Enten Visual Studio 2017, Visual Studio 2019 eller Visual Studio 2022 (anbefales for de nyeste funktioner som Hot Restart) på din Windows-maskine eller Visual Studio for Mac på din Mac-maskine. Sørg for at 'Mobiludvikling med .NET'-arbejdsbyrden er installeret.
- Fysisk iOS-enhed: En iPhone eller iPad, som du vil teste din app på.
Trin-for-trin guide: Installation på iOS-enhed med Xcode
Denne sektion beskriver den manuelle proces for at opsætte og udrulle din Xamarin.iOS-applikation til en iOS-enhed, primært fra en Mac-maskine, da Xcode er kernen i denne proces.
Trin 1: Tilføj din Apple ID i Xcode
Start med at åbne Xcode på din Mac-maskine. Gå til Xcode-menuen > Preferences > Accounts-fanen. Klik på '+' knappen i nederste venstre hjørne og vælg 'Add Apple ID'. Log ind med dit gratis Apple ID. Dette trin er afgørende, da det forbinder Xcode med din Apple-konto og giver dig mulighed for at oprette personlige udviklingsteams og signaturidentiteter, som er nødvendige for at udrulle apps til din enhed.
Trin 2: Opret et simpelt Xcode-projekt
For at initialisere de nødvendige signaturindstillinger i Xcode, opretter vi et nyt, simpelt Xcode-projekt. Dette projekt vil agere som en 'trigger' for Xcode til at generere de nødvendige klargøringsprofiler baseret på dit gratis Apple ID.

- Åbn Xcode og vælg 'Create a new Xcode project'.
- Vælg en skabelon (f.eks. 'App' under iOS) og klik 'Next'.
- Giv dit projekt et navn, f.eks. "TestApp", og sørg for at 'Team' er sat til dit personlige team (din Apple ID-e-mail).
- Tilslut din iPhone/iPad til din Mac-maskine via USB.
- Vælg din enhed fra dropdown-menuen i Xcode og tryk på 'Run'-knappen.
Du vil sandsynligvis støde på en fejl vedrørende kodesignering, hvilket er helt forventet på dette tidspunkt. Dette er en del af processen for at tvinge Xcode til at oprette den nødvendige signaturidentitet for dit Apple ID.
Trin 3: Løs problemer med kodesignering
Kodesignering er en sikkerhedsforanstaltning fra Apple, der sikrer, at apps er fra en betroet kilde. Når du bruger en gratis konto, skal du manuelt sikre, at Xcode kan signere din app.
Problem 1: Xcode 7 - Projekt kræver et udviklingsteam
Hvis du bruger Xcode 7, vil du sandsynligvis se en fejl, der indikerer, at projektet kræver et udviklingsteam. For at løse dette:
- Vælg dit personlige team (din Apple ID-e-mail) under 'Project Options' og 'General'-fanen i Xcode.
- Klik på 'View Details' ved siden af dit team og klik på 'Create'-knappen ud for 'iOS Development' for at oprette en signaturidentitet.
Problem 2: Xcode 8 og nyere - Kodesigneringsfejl under build
Hvis du bruger Xcode 8 eller nyere, vil kodesignering fejl sandsynligvis opstå under build-processen. Løsningen er mere strømlinet:
- Gå til iOS-projekteditoren i Xcode.
- Vælg sektionen 'General'.
- Sæt et flueben ved 'Automatically manage signing'.
- Vælg det 'Personal Team', du oprettede tidligere (din Apple ID-e-mail), fra 'Team'-dropdown-menuen i 'Signing'-sektionen.
Efter disse trin bør Xcode automatisk generere en klargøringsprofil for dit app-id. Prøv at køre projektet igen i Xcode for at sikre, at kodesigneringen nu er korrekt.
Trin 4: Godkend udviklerprofilen på din iOS-enhed
Selvom din app nu er signeret, skal din iOS-enhed stadig "stole" på din udviklerprofil. Hvis du prøver at køre appen fra Xcode eller Visual Studio nu, får du muligvis en fejlmeddelelse som "could not launch 'Your app name'".
- På din iOS-enhed: Åbn 'Settings' > 'General' > 'Device Management'. (Hvis du ikke ser denne mulighed, skal du prøve at udrulle applikationen igen fra Xcode, så den vises).
- Du vil se den e-mailadresse, der er tilknyttet det Apple ID, du brugte til at signere din app. Tryk på den.
- Tryk derefter på 'Trust
' .
Gå nu tilbage til Xcode og kør applikationen igen. Den burde nu starte på din enhed.

Trin 5: Opdater Bundle Identifier i dit Xamarin-projekt
Nu hvor din Xcode-opsætning er på plads, skal du justere dit Xamarin.iOS-projekt, så det matcher. Den vigtigste del er at sikre, at Bundle Identifier i dit Xamarin-projekt er identisk med det, du brugte i dit Xcode-testprojekt.
- Åbn dit Xamarin.iOS-projekt i Visual Studio.
- Gå til filen 'Info.Plist'.
- Ændr 'Bundle Identifier' til at være det samme som det bundle identifier, du brugte i dit Xcode-projekt (f.eks. "com.yourcompany.TestApp").
- Sørg også for, at under projektindstillingerne i Visual Studio, i 'iOS Bundle Signing'-sektionen, er 'Signing identity' valgt til din Apple-konto (dit personlige team).
Trin 6: Kør applikationen fra Visual Studio/Xamarin Studio
Vælg din iPhone-enhed fra dropdown-menuen i Visual Studio (ved siden af 'Run'-knappen) og klik på 'Run'-knappen. Din Xamarin-applikation skal nu bygge, udrulles og starte på din fysiske iOS-enhed. Tillykke! Du har nu succesfuldt udrullet din Xamarin-app til en iOS-enhed med gratis klargøring.
Xamarin Hot Restart: Udvikling til iOS fra Windows uden en Mac
For Windows-udviklere, der ikke har adgang til en Mac, er Xamarin Hot Restart en revolutionerende funktion. Den giver dig mulighed for at bygge og debugge iOS-applikationer direkte fra din Windows-maskine på en fysisk iOS-enhed, uden behov for en Mac build-vært i netværket. Dette er en fantastisk nyhed for dem, der foretrækker Windows som deres primære udviklingsmiljø.
Krav til Hot Restart
- Visual Studio 2022: Det er stærkt anbefalet at bruge den seneste version af Visual Studio 2022, da tidligere versioner (f.eks. VS 2019) kan have fejl relateret til Hot Restart, der er blevet rettet i de nyere udgivelser.
- Microsoft Store-versionen af iTunes: Dette er et kritisk krav. Den traditionelle desktop-version af iTunes fungerer IKKE med Hot Restart. Hvis du tidligere har installeret den, skal du afinstallere den og installere versionen fra Microsoft Store.
- Apple Udviklerprogram: Selvom du bruger gratis klargøring, skal du tilmelde dig det gratis Apple Udviklerprogram og vente på at blive accepteret. Dette kan tage alt fra et par timer til over en uge.
- Xamarin.Forms-projekt: Projektet skal være af typen "iOS XAML App (Xamarin Forms)" eller "Mobile App (Xamarin Forms)". Hvis du opretter et "iOS App (Xamarin)"-projekt, vil du ikke se "Local Device" i dropdown-menuen.
Trin 1: Aktiver Xamarin Hot Restart i Visual Studio
I Visual Studio på Windows, gå til 'Tools' > 'Options' > 'Preview Features' og sæt et flueben ved 'Enable Xamarin Hot Restart'. Efter aktivering skal du genstarte Visual Studio, for at ændringerne træder i kraft.
Trin 2: Installer iTunes (den rigtige version!)
Når Visual Studio er genstartet, indstil dit iOS-projekt som startprojekt ved at højreklikke på det i Solution Explorer og vælge 'Set as Startup Project'. Vælg 'Local Device' fra dropdown-menuen ved siden af 'Play'-knappen i værktøjslinjen, og klik derefter på 'Play'-knappen. Dette vil starte 'Setup Hot Restart'-oplevelsen. Det første trin i denne proces er at downloade iTunes. Klik på 'Download iTunes'-knappen. Det er afgørende, at du kun installerer versionen, der hentes via denne knap, og som er Microsoft Store-versionen. Afinstaller enhver tidligere version af iTunes, du måtte have.

Trin 3: Tilslut din iOS-enhed og log ind med Apple ID
Efter iTunes er installeret, skal 'Setup Hot Restart'-processen detektere den. Tilslut nu din iOS-enhed til din Windows-maskine via USB. Når du bliver bedt om det på din iOS-enhed, skal du trykke på 'Trust' for at give tilladelse til den tilsluttede computer. Hot Restart-opsætningen skal nu detektere din tilsluttede enhed.
Log derefter ind på din Apple Developer-konto (dit gratis Apple ID) og vælg det udviklingsteam, du vil bruge til klargøring. Efter at have gennemført 'Setup Hot Restart'-processen, skal build-processen fortsætte. I 'Output'-vinduet vil du se, at iPA-filen bliver oprettet og efterfølgende skubbet til enheden.
Trin 4: Fejlfinding med Hot Restart
Selvom Hot Restart er en fantastisk funktion, kan der opstå udfordringer. Her er nogle almindelige problemer og deres løsninger:
- Sidder fast ved "Running automatic provisioning": Højreklik på iOS-projektet i Solution Explorer > 'Properties' > 'iOS Bundle Signing' > 'Manage accounts' > 'View Details' > 'Create Certificate' > 'Create development certificate'. Du skal muligvis også manuelt opsætte en klargøringsprofil på developer.apple.com/account/resources/profiles/add, der forbinder din app med dit udviklerteam.
- "myProject.iOS is not configured to deploy": Gå til 'Build' > 'Configuration Manager' i Visual Studio og sørg for, at fluebenet ud for 'deploy' er sat for dit iOS-projekt i den aktive konfiguration.
Når du bliver bedt om det, skal du manuelt starte den installerede applikation på din iOS-enhed. Dette manuelle trin er nødvendigt for, at Visual Studio kan tilknytte debuggeren. Og voila – du har nu en iOS-applikation, der debugges ved hjålp af Visual Studio på en fysisk enhed, uden at en Mac er påkrævet!
Forstå Grundlæggende Xamarin-koncepter
Xamarin er bygget på .NET, som er en krydsplatform, højtydende og open source-runtime. Xamarin er et framework og værktøjssæt, der muliggør opbygning af apps til iOS, Android og macOS med C#. Dette inkluderer Xamarin.Forms, der bruges til at bygge krydsplatform brugergrænseflader (UI), og Xamarin.Essentials til at få adgang til native platformfunktioner på tværs af platforme.
Brugergrænseflader i Xamarin.Forms bygges ofte med XAML, et deklarativt sprog, der ligner XML. XAML giver en nem læsbar opmærkning, understøtter Hot Reload-teknologi (som giver dig mulighed for at se UI-ændringer med det samme, mens appen kører) og avanceret databinding, hvilket gør UI-udvikling hurtig og effektiv.
Et typisk Xamarin.Forms-projekt består af flere projekter i én løsning:
- Et delt .NET Standard-projekt: Dette er hjertet i din app, hvor det meste af din kode og forretningslogik skrives (f.eks. modeller, services, ViewModels og XAML-visninger). Dette projekt kan deles på tværs af forskellige operativsystemer.
- Platformspecifikke 'hovedprojekter' (iOS & Android): Disse projekter indeholder platformspecifik kode, indstillinger, aktiver (som ikoner og splash screens) og konfigurationer. Her konfigureres ting som visningsnavn, app-ikon og versionsnumre. Selvom det meste af din kode er i det delte projekt, vil du lejlighedsvis skulle justere indstillinger i disse platformspecifikke projekter.
Hvad med udgivelse til App Store?
Det er vigtigt at skelne mellem at teste og debugge din Xamarin-app på en enhed og at udgive den til App Store. Mens den gratis klargøring, vi har diskuteret, er perfekt til udvikling og test, er den ikke tilstrækkelig for at udgive din app til App Store.

For at udgive din Xamarin-app til App Store kræves en betalt Apple Developer-konto (den koster 99 USD/år). Denne konto giver dig adgang til distributionscertifikater og -profiler, som er nødvendige for at signere din app til offentlig distribution. Processen involverer yderligere trin som at oprette en iTunes Connect-post for din app, konfigurere en 'Release' build og uploade appen via Xcode's Arkivfunktion til App Store Connect.
Ofte Stillede Spørgsmål (FAQ)
Her er svar på nogle af de mest almindelige spørgsmål vedrørende installation af Xamarin-apps på iOS-enheder.
Kan jeg bruge Xamarin til iOS-udvikling uden en Mac?
Ja, det kan du! Takket være Xamarin Hot Restart kan du nu udvikle og debugge Xamarin.iOS-applikationer direkte fra en Windows-maskine på en fysisk iOS-enhed. Det kræver Visual Studio 2022 og den specifikke Microsoft Store-version af iTunes, samt et gratis Apple ID tilknyttet Apple Udviklerprogrammet.
Har jeg brug for en betalt Apple Developer-konto for at teste min Xamarin-app på en fysisk iOS-enhed?
Nej, det har du ikke. Siden Xcode 7 blev introduceret, har Apple gjort det muligt at teste apps på fysiske enheder ved hjælp af gratis klargøring med et standard Apple ID. En betalt udviklerkonto er kun nødvendig, hvis du ønsker at udgive din app til App Store eller til specifikke distributionsformål som beta-test via TestFlight.
Hvad skal jeg gøre, hvis jeg får en "Code Signing"-fejl?
"Code Signing"-fejl er almindelige, især når du opsætter din udviklingsmiljø for første gang. Løsningen afhænger ofte af din Xcode-version. For Xcode 7 skal du manuelt vælge dit team og oprette en signaturidentitet via 'View Details'. For Xcode 8 og nyere skal du bruge indstillingen 'Automatically manage signing' og vælge dit personlige team. Sørg altid for, at din Apple ID er korrekt tilføjet i Xcode-indstillingerne, og at du har godkendt din udviklerprofil på din iOS-enhed under 'Device Management'.

Hvad er en "Bundle Identifier", og hvorfor er den vigtig?
En "Bundle Identifier" er en unik streng, der identificerer din applikation i iOS-økosystemet. Det er afgørende, at "Bundle Identifier" i dit Xamarin.iOS-projekt (fundet i Info.Plist-filen) matcher "Bundle Identifier" for det Xcode-projekt, du bruger til klargøring. Dette sikrer, at iOS genkender din app som den samme applikation, der er signeret af din udviklerprofil.
Hvorfor skal jeg installere iTunes fra Microsoft Store til Hot Restart?
Den version af iTunes, der er tilgængelig via Microsoft Store, er specielt optimeret til at fungere med Visual Studio's Hot Restart-funktion på Windows. Den traditionelle desktop-version af iTunes mangler de nødvendige drivere eller integrationer, som Hot Restart kræver for at kommunikere korrekt med iOS-enheder. Manglende overholdelse af dette krav er en hyppig årsag til fejl under Hot Restart-opsætningen.
Konklusion
At installere din Xamarin-app på en iOS-enhed er en fundamental del af udviklingsprocessen, der giver dig mulighed for at teste din app i et virkeligt miljø. Som vi har set, er processen blevet betydeligt mere tilgængelig takket være Apples gratis klargøringsfunktion og Microsofts implementering af Xamarin Hot Restart. Uanset om du foretrækker at udvikle på en Mac eller fra din Windows-maskine, er vejen til at få din C#-app til at køre på en iPhone eller iPad nu åben for alle.
Ved at følge de detaljerede trin i denne guide og forstå de underliggende koncepter, er du godt rustet til at navigere i processen med kodesignering og klargøring. Husk, at øvelse gør mester, og selvom der kan opstå fejl, er de ofte løselige med den rette viden. Du kan nu fokusere på at bygge fantastiske, native krydsplatform-apps med .NET, Xamarin og Visual Studio, og bringe dine ideer til live på iOS-enheder.
Hvis du vil læse andre artikler, der ligner Installer Xamarin-apps på iOS: Gratis og nemt, kan du besøge kategorien Mobiludvikling.
