22/10/2022
Mange, der begynder at udvikle iOS-apps, støder hurtigt på spørgsmålet: "Skal jeg betale 99 USD om året for en Apple-udviklerkonto, bare for at teste min app på min egen iPhone?" Svaret er et rungende NEJ – i hvert fald ikke til personlig test og læring. Apple tilbyder en funktion kaldet "gratis provisionering" (free provisioning), som gør det muligt for enhver med et almindeligt Apple ID at bygge og køre apps på deres egne enheder. Denne artikel vil guide dig igennem processen, uanset om du arbejder med Expo/EAS eller native iOS-udvikling som MAUI, og forklare de trin og overvejelser, du skal være opmærksom på.

- Forstå Grundlaget: Gratis Provisionering
- Test med Expo og EAS: Hvad du skal vide
- Test med MAUI på en fysisk iPhone (med gratis provisionering)
- Sammenligning: Gratis Apple ID vs. Betalt Udviklerkonto
- Almindelige faldgruber og fejlfinding
- Hvornår er en betalt udviklerkonto nødvendig?
- Spørgsmål og Svar (FAQ)
- Konklusion
Forstå Grundlaget: Gratis Provisionering
Inden vi dykker ned i de specifikke teknologier, er det vigtigt at forstå, hvordan Apple tillader dig at teste apps uden en betalt konto. Apple har designet Xcode, udviklingsmiljøet for macOS, til at understøtte det, de kalder "gratis provisionering". Dette betyder, at du kan bruge dit personlige Apple ID (det samme, som du bruger til iCloud, App Store osv.) til at signere apps, som derefter kan installeres og køres på op til et begrænset antal af dine egne fysiske iOS-enheder. Dette er perfekt til hobbyprojekter, læring og intern test, men det har visse begrænsninger, som vi vil gennemgå.
Den primære årsag til, at du måske ser fejlmeddelelser som "Please select a team or switch to Manual Provisioning from the iOS Bundle Signing page", er netop, at Xcode mangler information om, hvordan appen skal signeres. Med en gratis konto vælger du blot din "Personal Team", som er automatisk forbundet med dit Apple ID.
Test med Expo og EAS: Hvad du skal vide
Expo er et populært framework for at bygge universelle React Native apps, der kan køre på både iOS og Android. Expo-økosystemet inkluderer også EAS (Expo Application Services), som er en suite af cloud-tjenester til at bygge, signere og indsende dine apps. Spørgsmålet om at teste uden en betalt konto er ofte relevant her.
Expo Go: Den Nemmeste Vej til Test
Under udvikling er den absolut nemmeste måde at teste din Expo-app på en fysisk iPhone ved at bruge Expo Go-appen. Du behøver ingen betalt udviklerkonto for dette. Sådan fungerer det:
- Installer Expo Go-appen fra App Store på din iPhone.
- Kør din Expo-app lokalt på din computer med
npx expo start. - Scan QR-koden, der vises i din terminal, med din iPhones kamera (eller vælg din enhed fra Metro-bundlerens UI).
- Din app vil åbne inde i Expo Go-appen på din iPhone, og du kan teste den i realtid.
Dette er den anbefalede metode til daglig udvikling og test, da den er hurtig og kræver minimal opsætning.
EAS Build og fysiske enheder uden betalt konto
Brugeren nævnte eas build -p ios --profile preview og "simulator": "true" i eas.json. Det er vigtigt at præcisere, hvad dette betyder:
"simulator": "true"ieas.jsoninstruerer EAS i at bygge en.tar.gz-fil, der indeholder en app bygget til en iOS-simulator, ikke en fysisk enhed. Du kan installere denne på en simulator på din Mac, men ikke på en rigtig iPhone. Dette løser ikke problemet med at teste på en fysisk enhed.- For at bygge en standalone app (en
.ipa-fil) til en fysisk iPhone med EAS, kræver det normalt, at du har et Apple Developer Program-medlemskab, da EAS skal bruge dine signaturcertifikater og provisioneringsprofiler til at signere appen.
Så selvom eas build er kraftfuldt, er det ikke en genvej til at omgå kravet om et betalt medlemskab, når du vil distribuere en standalone .ipa til en fysisk enhed ud over Expo Go. Hvis du absolut ønsker en standalone .ipa til din egen enhed uden at betale, skal du tilbage til den traditionelle Xcode-proces med gratis provisionering, som vi beskriver nedenfor, ved at generere en .ipa lokalt fra Xcode efter at have exporteret dit Expo-projekt til et "bare" React Native-projekt.
Test med MAUI på en fysisk iPhone (med gratis provisionering)
MAUI (Multi-platform App UI) er et Microsoft-framework til at bygge native apps på tværs af platforme med C#. Når du udvikler MAUI til iOS, foregår den faktiske bygge- og signeringsproces stadig på en Mac med Xcode installeret, selvom du udvikler på en Windows-maskine, der er forbundet til Mac'en.
Den fejlmeddelelse du modtager – "Please select a team or switch to Manual Provisioning from the iOS Bundle Signing page" – er en klar indikation af, at dit Xcode-projekt (som MAUI bygger igennem) ikke ved, hvordan det skal signere appen til din fysiske enhed. Løsningen er at konfigurere Xcode til at bruge din gratis provisionering.
Trin for trin: Opsætning af gratis provisionering i Xcode (for MAUI og native iOS)
Disse trin skal udføres på den Mac, der er forbundet til din Windows-udviklingsmaskine, og hvor Xcode er installeret:
- Åbn Xcode: Start Xcode på din Mac.
- Tilføj din Apple ID:
- Gå til
Xcode>Settings...(ellerPreferences...på ældre versioner) i menulinjen. - Vælg fanen
Accounts. - Klik på
+-knappen nederst til venstre og vælgApple ID. - Log ind med det Apple ID, du vil bruge til at signere dine apps. Dette behøver ikke at være et betalt udvikler-ID.
- Gå til
- Konfigurer dit MAUI/iOS-projekt til at bruge din "Personal Team":
- Når du bygger dit MAUI-projekt fra Windows, vil Xcode på Mac'en åbne projektet for at kompilere og signere det.
- Gå til dit iOS-projekt i Xcode (du kan eventuelt åbne det direkte, hvis du har en
.xcodeprojeller.xcworkspacefil, hvilket er tilfældet for MAUI-projekter underPlatforms/iOS). - Vælg dit projekt i navigatoren til venstre.
- Gå til fanen
Signing & Capabilities. - Under sektionen
Team, skal du vælge din personlige team (den der er opkaldt efter dit Apple ID, f.eks. "Dit Navn (Personal Team)"). Hvis den ikke er der, skal du sørge for, at dit Apple ID er korrekt tilføjet underAccounts. - Sørg for, at
Automatically manage signinger afkrydset. Xcode vil derefter forsøge at oprette de nødvendige provisioneringsprofiler og certifikater for dig. - Vælg din fysiske iPhone som destinationsenhed i Xcode (øverst i Xcode-vinduet, ved siden af play/stop-knapperne).
- Byg og kør:
- Fra din Windows-maskine kan du nu forsøge at bygge og køre din MAUI-app på din iPhone. Da Xcode nu er korrekt konfigureret til at signere med din gratis konto, bør byggeprocessen lykkes, og appen installeres på din tilsluttede iPhone.
- Hvis du arbejder direkte i Xcode, skal du blot klikke på "Run"-knappen (play-ikonet).
Husk, at appen, der er signeret med gratis provisionering, vil udløbe efter 7 dage. Du skal derefter genbygge og geninstallere appen fra Xcode for at fortsætte med at bruge den. Dette er en af de primære begrænsninger ved den gratis metode.

Sammenligning: Gratis Apple ID vs. Betalt Udviklerkonto
For at give et klarere billede af, hvad du får, og hvad du går glip af, her er en sammenligning mellem at bruge et gratis Apple ID til udvikling og et betalt Apple Developer Program-medlemskab:
| Funktion | Gratis Apple ID (Gratis Provisionering) | Betalt Udviklerkonto (99 USD/år) |
|---|---|---|
| Pris | Gratis | 99 USD pr. år (individuel) |
| App-udløb på enhed | Apps udløber efter 7 dage; skal geninstalleres/gensignes. | Apps er gyldige i 1 år; kræver ikke hyppig geninstallation. |
| Antal test-enheder | Begrænset (typisk 3 enheder) | Ubegrænset til test (op til 100 enheder pr. enhedstype). |
| Adgang til App Store | Ingen mulighed for at udgive apps til App Store. | Fuld adgang til at udgive apps til App Store. |
| Avancerede funktioner (Entitlements) | Begrænset adgang (f.eks. ingen Push Notifications, iCloud, Wallet, HealthKit). | Fuld adgang til alle Apple-tjenester og avancerede funktioner. |
| Team-samarbejde | Kun individuel brug. | Kan invitere andre til at deltage i dit udviklerteam. |
| Enterprise-distribution | Nej. | Ja (med Enterprise Program). |
Almindelige faldgruber og fejlfinding
- "Please select a team": Som diskuteret, løses dette ved at tilføje dit Apple ID i Xcode og vælge din "Personal Team" under projektets signeringsindstillinger.
- App udløber: Dette er forventet med gratis provisionering. Du skal blot genbygge og geninstallere appen via Xcode/MAUI for at forlænge dens gyldighed med yderligere 7 dage.
- Xcode-certifikater og provisioneringsprofiler: Nogle gange kan der opstå problemer med forældede eller korrupte certifikater. Du kan prøve at gå til
Xcode>Settings...>Accounts, vælg dit Apple ID, og klik påManage Certificates.... Her kan du eventuelt slette eksisterende certifikater, og Xcode vil automatisk genoprette dem, når du forsøger at bygge igen. - USB-forbindelse: Sørg for, at din iPhone er korrekt tilsluttet Mac'en og er låst op, når du forsøger at installere appen. Xcode skal kunne "se" din enhed.
- iOS-version: Sørg for, at din Xcode-version understøtter den iOS-version, der kører på din iPhone. Opdater om nødvendigt både Xcode og iOS.
Hvornår er en betalt udviklerkonto nødvendig?
Selvom gratis provisionering er fantastisk til personlig test og læring, er der scenarier, hvor en betalt Apple Developer-konto bliver uundværlig:
- Udgivelse til App Store: Den mest indlysende grund. For at din app kan distribueres til offentligheden via App Store, skal du være medlem af Apple Developer Program.
- Avancerede App Capabilities: Hvis din app kræver funktioner som Push Notifications, iCloud-synkronisering, Wallet-integration, HealthKit, Game Center, in-app køb eller avanceret baggrundsbehandling, vil du typisk have brug for et betalt medlemskab for at kunne bruge disse "entitlements" fuldt ud i dine builds. Mens nogle få kan fungere i begrænset omfang med gratis provisionering, er det ikke tiltænkt eller pålideligt.
- Længere app-gyldighed: Hvis du har brug for, at din app forbliver installeret og funktionel på test-enheder i længere perioder (op til et år) uden at skulle genbygge og geninstallere hver uge.
- Team-udvikling: Hvis du arbejder i et team, giver den betalte konto dig mulighed for at tilføje andre udviklere til dit team, hvilket forenkler samarbejde om kode, certifikater og provisioneringsprofiler.
- Enterprise-distribution: Hvis du ønsker at distribuere apps internt i en organisation uden om App Store, kræves et Apple Developer Enterprise Program-medlemskab.
Spørgsmål og Svar (FAQ)
Her er nogle almindelige spørgsmål, der ofte opstår:
Kan jeg udgive min app til App Store uden en betalt konto?
Nej. En betalt Apple Developer Program-konto er et ufravigeligt krav for at kunne indsende og udgive apps i App Store.
Hvorfor udløber min app på min iPhone efter 7 dage?
Dette er en begrænsning af den gratis provisionering. Apps signeret med et gratis Apple ID er kun gyldige i 7 dage. Du skal genbygge og geninstallere appen for at forny dens gyldighed.
Kan jeg bruge Push Notifications med en gratis konto?
Officielt og pålideligt, nej. Push Notifications er en avanceret "entitlement", der kræver et betalt Apple Developer Program-medlemskab for at kunne konfigureres og bruges korrekt i dine builds.
Er det muligt at teste på en fysisk iPhone fra Windows uden en Mac?
Nej. Selvom du udvikler på Windows (f.eks. med MAUI), er en macOS-maskine med Xcode stadig nødvendig for at kompilere, signere og installere iOS-apps på fysiske enheder. Windows kan fungere som udviklingsmiljø, men byggeprocessen for iOS-delen sker på Mac'en.
Hvad er forskellen på en simulator og en fysisk enhed?
En simulator er et stykke software, der efterligner en iOS-enhed på din Mac. Den er hurtig til test under udvikling, men den er ikke en ægte enhed og har ikke alle hardwarefunktioner (f.eks. kamera, GPS, visse sensorer). En fysisk enhed er en rigtig iPhone, der giver dig mulighed for at teste din app under virkelige forhold og med al hardware intakt. Installation på en fysisk enhed kræver, at appen er signeret, selv med gratis provisionering.
Konklusion
At starte og teste din iOS-app på en fysisk iPhone uden at betale for en Apple-udviklerkonto er ikke kun muligt, men også en ligetil proces, især for individuelle udviklere og dem, der er i læringsfasen. Ved at udnytte Apples gratis provisionering via Xcode kan du få din app op at køre på din egen enhed, uanset om du bruger Expo til hurtig iteration med Expo Go eller dykker ned i native udvikling med MAUI.
Husk begrænsningerne, især 7-dages udløbet og manglen på avancerede funktioner, og vær klar over, hvornår det er tid til at opgradere til et betalt medlemskab. For de fleste begyndere og hobbyister vil den gratis metode dog være mere end tilstrækkelig til at bringe dine app-idéer til live på en rigtig enhed.
Hvis du vil læse andre artikler, der ligner Test iOS-apps uden betalt udviklerkonto: Din guide, kan du besøge kategorien Mobiludvikling.
