ITMS-90725: “SDK version issue” oplossen met Expo
Door Mehdi Azizi
Gepubliceerd op , 7 min
ITMS-90725: je app is gebouwd met een te oude iOS SDK. Sinds 28 april 2026 eist Apple Xcode 26: stap over op Expo SDK 54 of hoger en maak een nieuwe build.
ITMS-90725 is een automatische controle van Apple op je build: die zegt dat de app is gecompileerd met een oudere iOS SDK dan het vereiste minimum. Op 15 oktober 2026 meldt Apple dat apps die naar App Store Connect worden gestuurd sinds 28 april 2026 gecompileerd moeten zijn met Xcode 26 of hoger en de iOS 26 SDK. Met Expo draait alles om de EAS-buildimage: vanaf Expo SDK 54 bevat de standaard gekozen image Xcode 26.
Mijn apps, Solys, TradaZen en Nolera, draaien op Expo SDK 57, zonder vastgezette image in eas.json: EAS kiest zelf de Xcode-versie. Zo controleer je de jouwe, en dit doe je als je project ouder is.
Wat betekent de fout ITMS-90725?
Het bericht heet "ITMS-90725: SDK version issue". Het noemt de SDK waarmee je app is gecompileerd, daarna het vereiste minimum en de Xcode-versie die dat bevat. Op het ontwikkelaarsforum van Apple begon een bericht uit 2024 bijvoorbeeld zo: "This app was built with the iOS 16.2 SDK", gevolgd door de eis van toen.
De SDK is de verzameling iOS-bibliotheken waarmee Xcode je app compileert. Elke Xcode-versie heeft zijn eigen SDK: Xcode 26 bevat de iOS 26 SDK. Compileren met een recente SDK betekent niet dat je oude iPhones laat vallen. De minimale iOS-versie die je app accepteert is een aparte instelling, het deployment target.
Net als bij de andere ITMS-fouten is dit geen afwijzing door een reviewer. De controle is automatisch en gaat over het verstuurde binary.
Welke Xcode-versie eist Apple nu?
Dit staat er op de pagina met aankomende eisen van Apple en de pagina over indienen in de App Store, bekeken op 15 oktober 2026:
| Datum | Eis |
|---|---|
| 28 april 2026 | Xcode 26, iOS 26 SDK |
| 9 september 2026 | Minimaal iOS 13 als target |
| April 2027 | iOS 27 SDK, target iOS 15 |
De regel die ITMS-90725 veroorzaakt is de eerste. Een build gemaakt met Xcode 16 en de iOS 18 SDK wordt niet meer geaccepteerd. De tweede gaat over de minimale doelversie, niet over de SDK. De derde is aangekondigd voor april 2027, zonder exacte dag op de pagina op het moment van bekijken. Apple raadt nu al aan om met Xcode 27 te compileren en te testen.
Deze eis gaat regelmatig omhoog, en altijd in het voorjaar. Dezelfde pagina van Apple houdt meerdere deadlines bij: Xcode 14.1 op 25 april 2023, Xcode 15 op 29 april 2024, Xcode 26 op 28 april 2026. Lees haar elk voorjaar opnieuw in plaats van op een artikel te vertrouwen, dit artikel incluis.
Waarschuwing of blokkade: hoe zie je het verschil?
Vóór de deadline komt ITMS-90725 binnen als waarschuwing. In 2024 stond in de e-mail, volgens het forum van Apple, dat de levering gelukt was, met het advies het bij de volgende upload op te lossen. Na de deadline schrijft Apple dat apps met de vereiste SDK gecompileerd "moeten" zijn om verstuurd te worden: de build wordt niet meer geaccepteerd.
| Aanwijzing | Waarschuwing | Blokkade |
|---|---|---|
| Datum van upload | Vóór de deadline | Na de deadline |
| Upload geaccepteerd | Ja | Nee |
| Wat je doet | Oplossen bij de volgende | Nieuwe build |
Een ITMS-90725-waarschuwing is een aftelklok. De build komt er vandaag door, maar de volgende, op dezelfde manier gecompileerd, wordt na de datum geweigerd. Los het op zolang je geen haast hebt met een dringende update.
ITMS-90725 oplossen in een Expo-project
Met EAS wordt je app gecompileerd op de Macs van Expo, zoals ik uitleg in een iOS-app publiceren zonder Mac. De Xcode-versie hangt af van de buildimage. Als je geen image opgeeft in eas.json, gebruikt EAS de alias auto: die kiest de image op basis van je Expo SDK-versie.
Dit is de image per SDK volgens de documentatie van de EAS-infrastructuur, bijgewerkt op 8 oktober 2026:
| Expo SDK | Xcode in de image | ITMS-90725 |
|---|---|---|
| 57 | 26.6 | Nee |
| 56 | 26.4 | Nee |
| 55 | 26.2 | Nee |
| 54 | 26.0 | Nee |
| 53 | 16.4 | Ja |
| 52 | 16.2 | Ja |
- Kijk welke image je laatste build gebruikte. Op de buildpagina in expo.dev toont het onderdeel "Spin up build environment" van de logs de naam en de Xcode-versie.
- Zit je op SDK 54 of hoger, zoek dan naar een vastgezette image. Eén
image-regel die naar Xcode 16 wijst, zoalsmacos-sequoia-15.6-xcode-16.4, is genoeg voor de fout. De documentatie van Expo presenteert die als de SDK 54-image voor wie geen Xcode 26 wil: sinds 28 april 2026 leidt die keuze tot weigering. Haal de regel weg: EAS gaat terug naar de standaardimage. - Zit je op SDK 53 of lager, upgrade dan je SDK. Dat is het advies van Expo in de aankondiging van 27 april 2026: minstens naar SDK 54.
- Maak een nieuwe build en verstuur die. De SDK zit vast in het binary: een update op afstand verandert niets.
De noodoplossing voor een oude SDK
Dezelfde aankondiging van Expo geeft een optie als je niet meteen kunt upgraden: een Xcode 26-image vastzetten in eas.json, in je productieprofiel.
{
"build": {
"production": {
"ios": {
"image": "macos-sequoia-15.6-xcode-26.2"
}
}
}
}
Expo waarschuwt: niet elke SDK-versie is compatibel met Xcode 26, en het resultaat hangt ook af van je bibliotheken. Zie het als uitstel, niet als oplossing. Mislukt de build bij het compileren, dan blijft upgraden de enige weg.
SDK upgraden, één versie tegelijk
De upgradegids van Expo raadt aan om één versie tegelijk omhoog te gaan, zodat je per stap ziet wat er breekt. Van SDK 53 naar SDK 54:
npm install expo@^54.0.0
npx expo install --fix
npx expo-doctor
Wordt je map ios door Expo gegenereerd, verwijder hem dan: hij wordt bij de volgende build opnieuw aangemaakt. Test de app daarna op je iPhone voordat je aan de volgende versie begint.
Eén ding om te weten voordat je op de nieuwste SDK mikt. Volgens de versietabel van Expo ondersteunen SDK 54 en 55 iOS 15.1 en hoger, SDK 56 en 57 alleen iOS 16.4 en hoger. Overstappen op SDK 56 sluit dus iPhones uit die op iOS 15 zijn blijven staan. SDK 54 is genoeg om ITMS-90725 op te lossen.
De SDK van een build controleren vóór het versturen
Xcode schrijft in de Info.plist van elke build welke SDK en Xcode-versie zijn gebruikt. Download de IPA vanaf de buildpagina op expo.dev en voer op je Mac uit:
unzip -q MonApp.ipa -d ipa
plutil -extract DTSDKName raw ipa/Payload/*.app/Info.plist
plutil -extract DTXcode raw ipa/Payload/*.app/Info.plist
Voor een build voor de App Store moet de eerste waarde beginnen met iphoneos26. De tweede codeert de Xcode-versie: bij een build van Nolera gemaakt met Xcode 26.2 voor de simulator krijg ik 2620. Lees je iphoneos18 of een waarde die met 16 begint, dan wordt de build geweigerd.
Compileer je op je eigen Mac, dan telt jouw Xcode, niet de EAS-image. xcodebuild -version toont de actieve versie. Zelfde logica bij continuous integration: de Xcode-versie hangt af van de gekozen machine. In 2024 kregen ontwikkelaars op het forum van Apple ITMS-90725 omdat hun GitHub Actions-machine een macOS draaide die te oud was voor Xcode 15.
Is de juiste build verstuurd, test hem dan in TestFlight voordat je hem indient. Een nieuwe build gaat ook weer door de review, met de doorlooptijden uit doorlooptijd van de App Store-review.
Je build versturen zonder vervelende verrassingen
ITMS-90725 voorkom je in een minuut: controleer de image en de SDK vóór elke productiebuild. De andere automatische controles vragen dezelfde zorgvuldigheid, zoals ITMS-90683 voor de toestemmingsteksten. Afwijzingen door een reviewer vragen meer afstand: de aanpak staat op de pagina app afgewezen door Apple, en de meest voorkomende redenen in waarom Apple je app afwijst.
Om je dossier vóór het versturen te controleren, bundelt de Review Kit mijn checklist en Claude Code-skills die je project nalopen. Loopt je upload vast en wil je dat een mens meekijkt, boek een uur met mij: we nemen je project door via video, op jouw scherm. En bereid je je eerste release voor, doe dan je gratis diagnose: die zet de stappen op volgorde en stuurt je mijn checklist tegen afwijzingen door Apple.
Veelgestelde vragen
Houdt ITMS-90725 me tegen om mijn app te publiceren?
Na de deadline van Apple wel: de build wordt niet meer geaccepteerd en je moet een nieuwe compileren. Vóór de deadline is het een waarschuwing: de build komt erdoor, maar de volgende wordt geweigerd als hij op dezelfde manier is gecompileerd.
Moet ik oude iPhones laten vallen om met de iOS 26 SDK te compileren?
Nee. De compilatie-SDK en de minimale iOS-versie zijn twee aparte instellingen. Bij Expo bepaalt je Expo SDK-versie dat minimum: iOS 15.1 voor SDK 54 en 55, iOS 16.4 voor SDK 56 en 57.
Kun je ITMS-90725 oplossen met een update op afstand?
Nee. De SDK wordt bij het compileren in het binary vastgelegd. Een update op afstand verandert alleen de JavaScript en de resources. Je moet een nieuwe build maken met Xcode 26 en die opnieuw versturen.
Hoe weet ik welke Xcode-versie EAS gebruikt?
Open de logs van je build op expo.dev, onderdeel "Spin up build environment". De naam van de image geeft de Xcode-versie aan, bijvoorbeeld macos-tahoe-26.5-xcode-26.6. De volledige lijst staat in de documentatie van de EAS-infrastructuur.
Wat verandert er met de eis van april 2027?
Volgens de indieningspagina van Apple moet je dan compileren met de iOS 27 SDK en minimaal iOS 15 als target hebben. Aan de EAS-kant plant Expo een image met Xcode 27 voor de toekomstige SDK 58: controleer de lijst met buildimages voordat je compileert. Lees de pagina van Apple in het voorjaar opnieuw voor de exacte dag.

