Aller au contenu
Narvy

ITMS-90725 : compiler avec Xcode 26 et le SDK iOS 26

Depuis le 28 avril 2026, App Store Connect refuse les envois qui n'ont pas été compilés avec Xcode 26 ou plus et le SDK iOS 26. Le SDK est celui contre lequel Xcode compile, pas votre cible de déploiement : installez Xcode 26, recompilez, renvoyez. Vous pouvez continuer à prendre en charge d'anciennes versions d'iOS.

E-mail App Store ConnectITMS-90725
ITMS-90725: SDK version issue - This app was built with the iOS 18.5 SDK. Starting April 2026, all iOS and iPadOS apps must be built with the iOS 26 SDK or later, included in Xcode 26 or later, in order to be uploaded to App Store Connect or submitted for distribution.

Ce que cela signifie

La page des exigences à venir d'Apple indique que, depuis le 28 avril 2026, les applications envoyées sur App Store Connect doivent être compilées avec Xcode 26 ou plus et un SDK pour iOS 26, iPadOS 26, tvOS 26, visionOS 26 ou watchOS 26. Le build enregistre le SDK dans Info.plist (DTSDKName, DTPlatformVersion, DTXcode) et dans l'exécutable (LC_BUILD_VERSION) : App Store Connect les lit, et le contrôle aussi.

Échéance

En vigueur depuis le 28 avril 2026. Le minimum précédent était Xcode 16 avec le SDK iOS 18.

Corriger

1. Compiler avec Xcode 26

terminal
xcodebuild -version          # doit afficher Xcode 26.x ou plus
xcodebuild -showsdks | grep iphoneos

2. Mettre à jour les machines de CI

La plupart des refus ITMS-90725 viennent d'images de CI restées sur un Xcode plus ancien. Fixez explicitement la version de Xcode dans le workflow (par exemple avec sudo xcode-select -s /Applications/Xcode_26.app) au lieu de vous fier à la valeur par défaut de l'image.

3. Recompiler les frameworks si besoin

Les frameworks binaires tiers n'ont pas besoin du nouveau SDK, mais doivent fonctionner avec lui : si l'un d'eux ne se lie pas ou plante, mettez-le à jour.

Vérifier avant de soumettre

Déposez l'IPA sur la page de contrôle des stores. Elle exécute APPSTORE-SDK-VERSION avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé. Le même moteur tourne hors ligne dans la CLI Narvy et renvoie le code 1 quand un point bloquant est trouvé, ce qui permet de bloquer un job de CI.

Hors ligne, depuis un terminal (narvy-cli 1.2.0 ou plus)
narvy store-check MyApp.ipa --lang fr

Contrôler un build dans le navigateur

Questions fréquentes

Dois-je abandonner les anciennes versions d'iOS ?

Non. La version du SDK et la cible de déploiement sont distinctes. La cible minimale acceptée par App Store Connect relève d'une autre règle (voir la page liée).

Pourquoi le contrôle indique-t-il "non déterminé" ?

Quand les SDK enregistrés dans l'Info.plist et dans l'exécutable divergent, ou manquent, le contrôle ne devine pas. Un build Xcode normal enregistre les deux.