ITMS-90725: ret “SDK version issue” med Expo
Af Mehdi Azizi
Udgivet , 7 min.
ITMS-90725: din app er bygget med et for gammelt iOS-SDK. Siden 28. april 2026 kræver Apple Xcode 26: skift til Expo SDK 54 eller nyere, og byg igen.
ITMS-90725 er en automatisk kontrol, som Apple kører på dit build: den fortæller, at appen er bygget med et ældre iOS-SDK end det krævede minimum. Pr. 15. oktober 2026 oplyser Apple, at apps sendt til App Store Connect siden 28. april 2026 skal være bygget med Xcode 26 eller nyere og iOS 26-SDK'et. Med Expo afgøres det hele af EAS-build-imaget: fra Expo SDK 54 indeholder det image, der vælges som standard, Xcode 26.
Mine apps, Solys, TradaZen og Nolera, kører på Expo SDK 57 uden et tvunget image i eas.json: EAS vælger selv Xcode-versionen. Her er, hvordan du tjekker din, og hvad du gør, hvis dit projekt er ældre.
Hvad betyder fejlen ITMS-90725?
Beskeden hedder "ITMS-90725: SDK version issue". Den angiver det SDK, din app er bygget med, og derefter det krævede minimum og den Xcode-version, der indeholder det. På Apples udviklerforum startede en besked fra 2024 for eksempel sådan: "This app was built with the iOS 16.2 SDK", efterfulgt af det daværende krav.
SDK'et er samlingen af iOS-biblioteker, som Xcode bygger din app med. Hver Xcode-version har sit eget: Xcode 26 indeholder iOS 26-SDK'et. At bygge med et nyt SDK betyder ikke, at du dropper de gamle iPhones. Den laveste iOS-version, din app understøtter, er en separat indstilling: deployment target.
Ligesom de andre ITMS-fejl er det ikke en afvisning fra en reviewer. Kontrollen er automatisk og gælder den binære fil, du sender.
Hvilken Xcode-version kræver Apple i dag?
Her er, hvad siden med Apples kommende krav og siden om indsendelse til App Store siger, aflæst 15. oktober 2026:
| Dato | Krav |
|---|---|
| 28. april 2026 | Xcode 26, iOS 26-SDK |
| 9. september 2026 | Mindst iOS 13 som target |
| April 2027 | iOS 27-SDK, iOS 15 som target |
Det er den første regel, der udløser ITMS-90725. Et build lavet med Xcode 16 og iOS 18-SDK'et bliver ikke længere accepteret. Den anden gælder den laveste understøttede version, ikke SDK'et. Den tredje er annonceret til april 2027, uden en præcis dag på siden, da jeg tjekkede. Apple opfordrer allerede til at bygge og teste med Xcode 27.
Kravet hæves jævnligt, og altid om foråret. Den samme side hos Apple viser flere tidligere deadlines: Xcode 14.1 den 25. april 2023, Xcode 15 den 29. april 2024, Xcode 26 den 28. april 2026. Læs den igen før hvert forår i stedet for at stole på en artikel, også denne her.
Advarsel eller blokering: hvordan kender du forskel?
Før deadlinen kommer ITMS-90725 som en advarsel. I 2024 stod der i mailen, ifølge Apples forum, at leveringen var lykkedes, og at man burde rette det ved næste upload. Efter deadlinen skriver Apple, at apps "skal" være bygget med det krævede SDK for at kunne sendes: buildet bliver ikke accepteret.
| Tegn | Advarsel | Blokering |
|---|---|---|
| Dato for upload | Før deadlinen | Efter deadlinen |
| Upload accepteret | Ja | Nej |
| Hvad du gør | Ret det ved næste | Nyt build |
En ITMS-90725-advarsel er en nedtælling. Buildet går igennem i dag, men det næste, bygget på samme måde, bliver afvist efter datoen. Ret det, mens du ikke er presset af en hasteopdatering.
Ret ITMS-90725 i et Expo-projekt
Med EAS bliver din app bygget på Expos Mac'er, som jeg forklarer i udgiv en iOS-app uden Mac. Xcode-versionen afhænger af build-imaget. Hvis du ikke angiver image i eas.json, bruger EAS aliasset auto: det vælger imaget ud fra din Expo SDK-version.
Her er imaget for hvert SDK ifølge dokumentationen for EAS-infrastrukturen, opdateret 8. oktober 2026:
| Expo SDK | Xcode i imaget | ITMS-90725 |
|---|---|---|
| 57 | 26.6 | Nej |
| 56 | 26.4 | Nej |
| 55 | 26.2 | Nej |
| 54 | 26.0 | Nej |
| 53 | 16.4 | Ja |
| 52 | 16.2 | Ja |
- Se hvilket image dit seneste build brugte. På buildets side på expo.dev viser afsnittet "Spin up build environment" i loggen navnet og Xcode-versionen.
- Er du på SDK 54 eller nyere, så led efter et tvunget image. En
image-linje, der peger på Xcode 16, sommacos-sequoia-15.6-xcode-16.4, er nok til at udløse fejlen. Expos dokumentation præsenterer det som SDK 54-imaget for dem, der ikke vil have Xcode 26: siden 28. april 2026 fører det valg til afvisning. Fjern linjen: EAS går tilbage til standard-imaget. - Er du på SDK 53 eller ældre, så opgrader SDK'et. Det anbefaler Expo i sin meddelelse fra 27. april 2026: gå mindst til SDK 54.
- Byg igen og send det på ny. SDK'et er låst i den binære fil: en fjernopdatering ændrer intet.
Nødløsningen til et gammelt SDK
Den samme meddelelse fra Expo giver en mulighed, hvis du ikke kan opgradere med det samme: tving et Xcode 26-image i eas.json, i din production-profil.
{
"build": {
"production": {
"ios": {
"image": "macos-sequoia-15.6-xcode-26.2"
}
}
}
}
Expo advarer: ikke alle SDK-versioner er kompatible med Xcode 26, og resultatet afhænger også af dine biblioteker. Se det som en udsættelse, ikke en rettelse. Hvis buildet fejler under kompileringen, er den eneste vej at opgradere SDK'et.
Opgrader SDK'et én version ad gangen
Expos opgraderingsguide anbefaler at opgradere én version ad gangen, så du kan se, hvad der går i stykker ved hvert trin. For at gå fra SDK 53 til SDK 54:
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
Hvis din ios-mappe er genereret af Expo, så slet den: den bliver genskabt ved næste build. Test derefter appen på din iPhone, før du gentager det for den næste version.
Én ting skal du vide, før du sigter efter det nyeste SDK. Ifølge Expos versionsoversigt understøtter SDK 54 og 55 iOS 15.1 og nyere, mens SDK 56 og 57 kun understøtter iOS 16.4 og nyere. Går du til SDK 56, udelukker du altså iPhones, der stadig kører iOS 15. SDK 54 er nok til at slippe af med ITMS-90725.
Tjek et builds SDK før upload
Xcode skriver det brugte SDK og den brugte Xcode-version ind i Info.plist i hvert build. Download IPA-filen fra buildets side på expo.dev, og kør derefter på din Mac:
unzip -q MyApp.ipa -d ipa
plutil -extract DTSDKName raw ipa/Payload/*.app/Info.plist
plutil -extract DTXcode raw ipa/Payload/*.app/Info.plist
For et build til App Store skal den første værdi starte med iphoneos26. Den anden koder Xcode-versionen: på et Nolera-build lavet med Xcode 26.2 til simulatoren får jeg 2620. Hvis du ser iphoneos18 eller en værdi, der starter med 16, bliver buildet afvist.
Bygger du på din egen Mac, er det din Xcode, der tæller, ikke EAS-imaget. xcodebuild -version viser den aktive version. Samme logik i continuous integration: Xcode-versionen afhænger af den valgte maskine. I 2024 fik udviklere på Apples forum ITMS-90725, fordi deres GitHub Actions-maskine kørte en macOS-version, der var for gammel til Xcode 15.
Når det rigtige build er sendt, så test det i TestFlight, før du indsender det. Et nyt build skal også gennem review igen, med de ventetider, der er beskrevet i ventetid på App Store-godkendelse.
Send dit build uden ubehagelige overraskelser
ITMS-90725 kan forebygges på ét minut: tjek imaget og SDK'et før hvert production-build. De andre automatiske kontroller kræver samme omhu, som ITMS-90683 for tilladelsestekster. Afvisninger fra en reviewer kræver mere overblik: fremgangsmåden står på siden app afvist af Apple, og de hyppigste årsager står i hvorfor Apple afviser en app.
Vil du tjekke dit projekt før upload, samler Review Kit min tjekliste og Claude Code-skills, der gennemgår dit projekt. Hvis din upload sidder fast, og du vil have et menneske til at kigge på det, så book en time med mig: vi gennemgår dit projekt over video, på din skærm. Og forbereder du din første udgivelse, så tag din gratis diagnose: den sætter trinene i den rigtige rækkefølge og sender dig min tjekliste mod afvisninger fra Apple.
Ofte stillede spørgsmål
Forhindrer ITMS-90725 mig i at udgive min app?
Efter Apples deadline, ja: buildet bliver ikke accepteret, og du skal bygge et nyt. Før deadlinen er det en advarsel: buildet går igennem, men det næste bliver afvist, hvis det bygges på samme måde.
Skal jeg droppe gamle iPhones for at bygge med iOS 26-SDK'et?
Nej. Build-SDK'et og den laveste iOS-version er to separate indstillinger. Med Expo er det din Expo SDK-version, der fastlægger minimummet: iOS 15.1 for SDK 54 og 55, iOS 16.4 for SDK 56 og 57.
Kan man rette ITMS-90725 med en fjernopdatering?
Nej. SDK'et skrives ind i den binære fil ved kompileringen. En fjernopdatering ændrer kun JavaScript og ressourcer. Du skal bygge igen med Xcode 26 og sende det på ny.
Hvordan finder jeg ud af, hvilken Xcode-version EAS bruger?
Åbn loggen for dit build på expo.dev, afsnittet "Spin up build environment". Imagets navn viser Xcode-versionen, for eksempel macos-tahoe-26.5-xcode-26.6. Den fulde liste står i dokumentationen for EAS-infrastrukturen.
Hvad ændrer kravet fra april 2027?
Ifølge Apples side om indsendelse skal du bygge med iOS 27-SDK'et og mindst understøtte iOS 15. På EAS-siden planlægger Expo et image med Xcode 27 til sit kommende SDK 58: tjek listen over build-images, før du bygger. Læs Apples side igen til foråret for at kende den præcise dag.

