すべてのオープンソースパッケージ
ツール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/sdkbump
2sdkbump

npx

sh
1npx @mcamdali/sdkbump

Homebrew

sh
1brew install muhittincamdali/tap/sdkbump

スクリーンショット

React Native 0.87 アプリで sdkbump を実行した結果: iOS 27 SDK でビルドすると起動に失敗し、SCN001 と SCN002、3つの修正方法が示されます
iOS 27.0 シミュレータ上の native UIKit fixture: 起動後に動作せず、UIKit から UIScene のライフサイクルが必須であるというメッセージが表示されます
Xcode 27.0 でビルドされ、iOS 27.0 の iPhone 17 シミュレータ上で動作する native-uikit-scenes と native-swiftui の fixture
AppDelegate をカスタマイズした Flutter アプリで sdkbump を実行した結果

タイムライン

  1. 最初のコミットと最初のリリース 0.1.0: native iOS、Flutter、React Native、Expo プロジェクト向けの SCN001 から SCN004

  2. 0.1.1 と 0.1.2: プロジェクトファイルは、プロジェクト内の通常ファイルである場合のみ読み込まれるようになりました。読み込めない Info.plist は起動失敗ではなく「Launch not determined」になります

  3. 0.1.3: npm に @mcamdali/sdkbump として公開。すべてのレポート形式と stderr で制御文字を除去するようになりました

リンク

関連記事

記事を読む