Todos los paquetes de código abierto
HerramientasTypeScript

sdkbump

Comprueba apps nativas de iOS, Flutter y React Native frente a los cambios del SDK de iOS 27 y indica la solución para cada una.

0EstrellasÚltima versión: v0.1.3Actualizado: 15 de octubre de 2026
Plataformas:Node.js 22.12+macOSLinux

Licencia: MIT

Una app compilada con el SDK de iOS 27 que no declara ninguna scene compila sin aviso y luego se detiene al lanzarse. sdkbump lee los archivos de un proyecto nativo de iOS, Flutter o React Native/Expo (project.pbxproj, Info.plist, fuentes Swift y Objective-C, package.json, pubspec.yaml), reporta los problemas del ciclo de vida de UIScene como las reglas SCN001 a SCN004, y elige la solución que corresponde al ecosistema y la versión del proyecto. No compila, ejecuta ni modifica el proyecto.

Características

  • Un veredicto que responde "¿se va a lanzar?": falla al lanzarse, se lanza a una pantalla negra, se lanza gracias a un paquete workaround, o lanzamiento no determinado
  • iOS nativo, Flutter (app y ejemplo de plugin), React Native y Expo en un solo informe con los mismos IDs de regla
  • La solución elegida según el ecosistema y la versión: React Native 0.88 o un scene delegate escrito a mano, el opt-in de Expo SDK 57 o SDK 58, la migración automática de Flutter o los pasos manuales
  • Las reglas se mantienen como datos en rules/ios27.json, validadas con zod; cada regla, solución y workaround lleva una fuente, y un test falla cuando no la lleva
  • Informes en terminal, Markdown y JSON, con --fail-on y códigos de salida 0, 1 y 2 para CI
  • Reconoce react-native-uiscene-bridge y react-native-xcode27, y muestra los hallazgos que resuelven en tiempo de ejecución como resueltos ("handled"), con sus límites
  • Solo lee archivos, así que no necesita Xcode y también funciona en Linux; el texto del proyecto analizado se imprime como texto plano en todos los formatos

Inicio rápido

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

Instalación

npm (global)

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

npx

sh
1npx @mcamdali/sdkbump

Homebrew

sh
1brew install muhittincamdali/tap/sdkbump

Capturas de pantalla

sdkbump ejecutado en una app React Native 0.87: falla al lanzarse cuando se compila con el SDK de iOS 27, con SCN001 y SCN002 y tres formas de solucionarlo
El fixture nativo de UIKit en el simulador de iOS 27.0: no se ejecuta tras el lanzamiento, con el mensaje de UIKit de que el ciclo de vida de UIScene es obligatorio
Los fixtures native-uikit-scenes y native-swiftui ejecutándose en un simulador de iPhone 17 con iOS 27.0, compilados con Xcode 27.0
sdkbump ejecutado en una app Flutter con un AppDelegate personalizado

Cronología

  1. Primer commit y primera versión, 0.1.0: SCN001 a SCN004 para proyectos nativos de iOS, Flutter, React Native y Expo

  2. 0.1.1 y 0.1.2: los archivos del proyecto solo se leen cuando son archivos regulares dentro del proyecto; un Info.plist ilegible da "Launch not determined" en lugar de un fallo de lanzamiento

  3. 0.1.3: publicado en npm como @mcamdali/sdkbump; los caracteres de control se limpian en todos los formatos de informe y en stderr

Enlaces

Artículo relacionado

Leer el artículo