All open-source packages
ToolingTypeScript

sdkbump

Checks native iOS, Flutter and React Native apps for the iOS 27 SDK changes and names the fix for each.

0StarsLatest Release: v0.1.3Updated: October 15, 2026
Platforms:Node.js 22.12+macOSLinux

License: MIT

An app built with the iOS 27 SDK that declares no scene compiles without a warning and then stops at launch. sdkbump reads a native iOS, Flutter or React Native/Expo project's files (project.pbxproj, Info.plist, Swift and Objective-C sources, package.json, pubspec.yaml), reports the UIScene life cycle problems as rules SCN001 to SCN004, and picks the fix that applies to the project's ecosystem and version. It does not build, run or change the project.

Features

  • A verdict that answers "will it launch?": fails to launch, launches to a black screen, launches through a workaround package, or launch not determined
  • Native iOS, Flutter (app and plugin example), React Native and Expo in one report with the same rule IDs
  • The fix chosen by ecosystem and version: React Native 0.88 or a hand-written scene delegate, Expo SDK 57's opt-in or SDK 58, Flutter's automatic migration or the manual steps
  • Rules kept as data in rules/ios27.json, validated with zod; every rule, fix and workaround carries a source, and a test fails when one does not
  • Terminal, Markdown and JSON reports, with --fail-on and exit codes 0, 1 and 2 for CI
  • Recognises react-native-uiscene-bridge and react-native-xcode27 and shows the findings they handle at run time as handled, with their limits
  • Reads files only, so it needs no Xcode and also runs on Linux; text from the checked project is printed as plain text in every format

Quickstart

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

Screenshots

sdkbump run on a React Native 0.87 app: fails to launch when built with the iOS 27 SDK, with SCN001 and SCN002 and three ways to fix it
The native UIKit fixture on the iOS 27.0 simulator: not running after launch, with UIKit's message that the UIScene life cycle is required
The native-uikit-scenes and native-swiftui fixtures running on an iPhone 17 simulator with iOS 27.0, built with Xcode 27.0
sdkbump run on a Flutter app with a customised AppDelegate

Timeline

  1. First commit and first release, 0.1.0: SCN001 to SCN004 for native iOS, Flutter, React Native and Expo projects

  2. 0.1.1 and 0.1.2: project files read only when they are regular files inside the project; an unreadable Info.plist gives "Launch not determined" instead of a launch failure

  3. 0.1.3: published on npm as @mcamdali/sdkbump; control characters cleaned in every report format and on stderr

Links

Related Article

Read the article