Flutter iOS ビルド時の "Requested but did not find extension point" エラー解決方法
この記事では、FlutterプロジェクトをiOSでビルドする際に発生する「Requested but did not find extension point with identifier」エラーの原因と解決方法について詳しく説明します。
問題の概要
Xcode 13.3以降でFlutterプロジェクトをビルドしようとすると、以下のようなエラーが発生することがあります:
Error output from Xcode build:
↳
2022-03-02 17:45:38.148 xcodebuild[62848:6695836] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in
com.apple.dt.IDEWatchSupportCore
2022-03-02 17:45:38.148 xcodebuild[62848:6695836] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of
plug-in com.apple.dt.IDEWatchSupportCore
** BUILD FAILED **
このエラーはwatchOS関連の拡張ポイントが見つからないという内容ですが、実際にはiOSアプリのビルドに影響を与えます。
効果的な解決策
以下に、多くの開発者が実践し効果を確認した解決方法を紹介します。
1. 基本的なクリーンアップ作業
まずは最も簡単な方法から試してみましょう:
# Flutterのキャッシュをクリーン
flutter clean
# 依存関係を再取得
flutter pub get
# iOSディレクトリに移動
cd ios
# CocoaPodsのキャッシュをクリーン
pod cache clean --all
# Podの再インストール
pod install
2. DerivedDataの削除
Xcodeのビルドキャッシュが原因である場合があります:
rm -rf ~/Library/Developer/Xcode/DerivedData
このコマンド実行後、ビルドには通常より時間がかかる可能性がありますが、多くの場合解決します。
3. コマンドラインツールの再設定
Xcodeのコマンドラインツールに問題がある可能性があります:
# デフォルトにリセット
xcode-select -r
# または明示的にパス設定
sudo xcode-select -s /Library/Developer/CommandLineTools
# コマンドラインツールの再インストール
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
4. iOSフォルダの再生成
プロジェクトのiOS部分に問題がある場合は、フォルダ全体を再生成することが有効です:
WARNING
この操作の前に、iosフォルダ内のカスタマイズしたファイル(GoogleService-Info.plistなど)をバックアップしてください。
# iosフォルダのバックアップを作成
cp -r ios ios_backup
# 既存のiosフォルダを削除
rm -rf ios
# Flutterクリーン実行
flutter clean
# iOSプロジェクトを再生成
flutter create .
# バックアップから必要なファイルを復元
# (例: GoogleService-Info.plist, カスタム設定など)
5. キーチェーンのロック解除
証明書関連の問題が原因の場合:
security unlock-keychain
# またはパスワード指定で
security unlock-keychain -p <password>
その他の解決策
上記で解決しない場合、以下の方法を試してみてください:
シミュレーターの再作成
# Xcodeで新しいシミュレーターを作成する
open -a Xcode
# Window > Devices and Simulators から新しいシミュレーターを追加
特定のファイルの問題修正
pubspec.yaml
のバージョン表記に問題がある場合:
version: 1.0.0+1
version: "1.0.0+1" # 文字列としてクオーテーションで囲む
Apple Watchの電源オフ
意外な原因として、接続されたApple Watchがビルドプロセスに干渉することがあります。ビルド時にApple Watchの電源をオフにしてみてください。
根本的な原因
このエラーは、Xcode 13.3のバグや不整合が原因で発生することが多く、以下のような要因が考えられます:
- Xcodeとコマンドラインツールのバージョン不整合
- キャッシュデータの破損
- FlutterとXcodeの連携問題
- プロジェクト設定の不備
INFO
このエラーメッセージ自体は警告として扱われる場合があり、実際のビルド失敗は他の要因(スクリプトエラー、設定不備など)であることも多いです。
予防策
今後同様の問題を防ぐために:
- 定期的な更新: Xcode、Flutter、コマンドラインツールを最新状態に保つ
- バージョン管理: プロジェクトの重要な変更は必ずGitなどで管理する
- バックアップ: iOSフォルダを変更する前にバックアップを取る習慣をつける
まとめ
「Requested but did not find extension point」エラーは様々な要因で発生しますが、ほとんどの場合、上記の解決策のいずれかで解決できます。基本的なクリーンアップから始め、段階的に高度な解決策を試していくことをお勧めします。
問題が解決しない場合は、FlutterのGitHubイシューで同様の問題を検索したり、新しいイシューを作成したりすることを検討してください。