sdkbump
Prüft native iOS-, Flutter- und React-Native-Apps auf die Änderungen im iOS-27-SDK und nennt für jeden Fund die passende Korrektur.
Lizenz: MIT
Eine mit dem iOS-27-SDK gebaute App, die keine Scene deklariert, kompiliert ohne Warnung und stürzt dann beim Start ab. sdkbump liest die Dateien eines nativen iOS-, Flutter- oder React-Native-/Expo-Projekts (project.pbxproj, Info.plist, Swift- und Objective-C-Quellen, package.json, pubspec.yaml), meldet die UIScene-Lifecycle-Probleme als Regeln SCN001 bis SCN004 und wählt die Korrektur, die zum Ökosystem und zur Version des Projekts passt. Es baut, startet oder verändert das Projekt nicht.
Funktionen
- Ein Urteil, das die Frage „Startet die App?" beantwortet: startet nicht, startet mit schwarzem Bildschirm, startet über ein Workaround-Package, oder Start nicht bestimmbar
- Native iOS, Flutter (App- und Plugin-Beispiel), React Native und Expo in einem Report mit denselben Regel-IDs
- Die je nach Ökosystem und Version gewählte Korrektur: React Native 0.88 oder ein handgeschriebener Scene Delegate, das Opt-in von Expo SDK 57 oder SDK 58, Flutters automatische Migration oder die manuellen Schritte
- Regeln liegen als Daten in rules/ios27.json und werden mit zod validiert; jede Regel, Korrektur und jeder Workaround trägt eine Quelle, fehlt sie, schlägt ein Test fehl
- Terminal-, Markdown- und JSON-Reports, mit --fail-on und den Exit-Codes 0, 1 und 2 für CI
- Erkennt react-native-uiscene-bridge und react-native-xcode27 und zeigt die von ihnen zur Laufzeit abgedeckten Befunde als behandelt an, samt deren Grenzen
- Liest nur Dateien, braucht daher kein Xcode und läuft auch auf Linux; Text aus dem geprüften Projekt wird in jedem Format als reiner Text ausgegeben
Schnellstart
1npx @mcamdali/sdkbump --format markdown --output sdkbump.mdInstallation
npm (global)
1npm i -g @mcamdali/sdkbump2sdkbumpnpx
1npx @mcamdali/sdkbumpHomebrew
1brew install muhittincamdali/tap/sdkbumpScreenshots

Zeitleiste
Erster Commit und erstes Release, 0.1.0: SCN001 bis SCN004 für native iOS-, Flutter-, React-Native- und Expo-Projekte
0.1.1 und 0.1.2: Projektdateien werden nur gelesen, wenn es sich um reguläre Dateien innerhalb des Projekts handelt; eine nicht lesbare Info.plist ergibt „Launch not determined" statt eines Startfehlers
0.1.3: auf npm als @mcamdali/sdkbump veröffentlicht; Steuerzeichen in jedem Report-Format und auf stderr bereinigt