ツールTypeScript
sdkbump
native iOS、Flutter、React Native のアプリを iOS 27 SDK の変更に対してチェックし、それぞれに対する修正方法を示します。
0スター数最新リリース: v0.1.3更新日: 2026年10月15日
対応プラットフォーム:Node.js 22.12+macOSLinux
ライセンス: MIT
scene を宣言していないアプリを iOS 27 SDK でビルドすると、警告なしでコンパイルは通りますが、起動時に停止します。sdkbump は、native iOS、Flutter、React Native/Expo のプロジェクトファイル(project.pbxproj、Info.plist、Swift と Objective-C のソース、package.json、pubspec.yaml)を読み込み、UIScene のライフサイクルの問題を SCN001 から SCN004 までのルールとして報告し、そのプロジェクトのエコシステムとバージョンに合った修正方法を選びます。プロジェクトをビルドしたり、実行したり、変更したりはしません。
機能
- 「起動するか?」に答える判定: 起動に失敗する、黒い画面で起動する、ワークアラウンドパッケージ経由で起動する、判定不能のいずれかです
- native iOS、Flutter (アプリとプラグインの例)、React Native、Expo を同じルール ID で1つのレポートにまとめます
- エコシステムとバージョンに応じて選ばれる修正方法: React Native 0.88 か手書きの scene delegate、Expo SDK 57 のオプトインか SDK 58、Flutter の自動移行か手動の手順です
- ルールは rules/ios27.json にデータとして保持され、zod で検証されます。すべてのルール、修正方法、ワークアラウンドには出典があり、出典がない場合はテストが失敗します
- ターミナル、Markdown、JSON のレポート。CI 向けに --fail-on と終了コード 0、1、2 を用意しています
- react-native-uiscene-bridge と react-native-xcode27 を認識し、それらが実行時に対処する内容を「対処済み」として、その限界とともに示します
- ファイルを読むだけなので Xcode は不要で、Linux 上でも動作します。検査対象のプロジェクトから得たテキストは、どの形式でも常にプレーンテキストとして出力されます
クイックスタート
sh
1npx @mcamdali/sdkbump --format markdown --output sdkbump.mdインストール
npm (global)
sh
1npm i -g @mcamdali/sdkbump2sdkbumpnpx
sh
1npx @mcamdali/sdkbumpHomebrew
sh
1brew install muhittincamdali/tap/sdkbumpスクリーンショット

タイムライン
最初のコミットと最初のリリース 0.1.0: native iOS、Flutter、React Native、Expo プロジェクト向けの SCN001 から SCN004
0.1.1 と 0.1.2: プロジェクトファイルは、プロジェクト内の通常ファイルである場合のみ読み込まれるようになりました。読み込めない Info.plist は起動失敗ではなく「Launch not determined」になります
0.1.3: npm に @mcamdali/sdkbump として公開。すべてのレポート形式と stderr で制御文字を除去するようになりました