Tous les paquets open source
OutillageTypeScript

sdkbump

Vérifie les apps iOS natif, Flutter et React Native face aux changements du SDK iOS 27 et indique le correctif pour chaque cas.

0ÉtoilesDernière version: v0.1.3Mis à jour: 15 octobre 2026
Plateformes:Node.js 22.12+macOSLinux

Licence: MIT

Une app compilée avec le SDK iOS 27 qui ne déclare aucune scene compile sans avertissement puis s'arrête au lancement. sdkbump lit les fichiers d'un projet iOS natif, Flutter ou React Native/Expo (project.pbxproj, Info.plist, sources Swift et Objective-C, package.json, pubspec.yaml), signale les problèmes de cycle de vie UIScene sous forme de règles SCN001 à SCN004, et choisit le correctif adapté à l'écosystème et à la version du projet. Il ne compile, n'exécute ni ne modifie le projet.

Fonctionnalités

  • Un verdict qui répond à « est-ce que ça se lance ? » : échec au lancement, lancement sur un écran noir, lancement via un package de contournement, ou lancement non déterminé
  • iOS natif, Flutter (app et exemple de plugin), React Native et Expo dans un même rapport avec les mêmes identifiants de règle
  • Le correctif choisi selon l'écosystème et la version : React Native 0.88 ou un scene delegate écrit à la main, l'option opt-in du SDK 57 d'Expo ou le SDK 58, la migration automatique de Flutter ou les étapes manuelles
  • Règles conservées comme données dans rules/ios27.json, validées avec zod ; chaque règle, correctif et contournement porte une source, et un test échoue si ce n'est pas le cas
  • Rapports terminal, Markdown et JSON, avec --fail-on et les codes de sortie 0, 1 et 2 pour la CI
  • Reconnaît react-native-uiscene-bridge et react-native-xcode27 et affiche les constats qu'ils traitent à l'exécution comme « handled », avec leurs limites
  • Ne lit que des fichiers, donc n'a pas besoin de Xcode et fonctionne aussi sous Linux ; le texte provenant du projet vérifié est affiché en texte brut dans chaque format

Démarrage rapide

sh
1npx @mcamdali/sdkbump --format markdown --output sdkbump.md

Installation

npm (global)

sh
1npm i -g @mcamdali/sdkbump
2sdkbump

npx

sh
1npx @mcamdali/sdkbump

Homebrew

sh
1brew install muhittincamdali/tap/sdkbump

Captures d'écran

Exécution de sdkbump sur une app React Native 0.87 : échoue au lancement quand elle est compilée avec le SDK iOS 27, avec SCN001 et SCN002 et trois façons de corriger
La fixture UIKit native sur le simulateur iOS 27.0 : ne s'exécute plus après le lancement, avec le message d'UIKit indiquant que le cycle de vie UIScene est requis
Les fixtures native-uikit-scenes et native-swiftui exécutées sur un simulateur iPhone 17 avec iOS 27.0, compilées avec Xcode 27.0
Exécution de sdkbump sur une app Flutter avec un AppDelegate personnalisé

Chronologie

  1. Premier commit et première version, 0.1.0 : SCN001 à SCN004 pour les projets iOS natif, Flutter, React Native et Expo

  2. 0.1.1 et 0.1.2 : les fichiers du projet ne sont lus que s'il s'agit de fichiers normaux à l'intérieur du projet ; un Info.plist illisible donne désormais « Launch not determined » plutôt qu'un échec de lancement

  3. 0.1.3 : publié sur npm sous le nom @mcamdali/sdkbump ; caractères de contrôle nettoyés dans chaque format de rapport et sur stderr

Liens

Article associé

Lire l'article