Skip to content

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. 基本的なクリーンアップ作業

まずは最も簡単な方法から試してみましょう:

bash
# Flutterのキャッシュをクリーン
flutter clean

# 依存関係を再取得
flutter pub get

# iOSディレクトリに移動
cd ios

# CocoaPodsのキャッシュをクリーン
pod cache clean --all

# Podの再インストール
pod install

2. DerivedDataの削除

Xcodeのビルドキャッシュが原因である場合があります:

bash
rm -rf ~/Library/Developer/Xcode/DerivedData

このコマンド実行後、ビルドには通常より時間がかかる可能性がありますが、多くの場合解決します。

3. コマンドラインツールの再設定

Xcodeのコマンドラインツールに問題がある可能性があります:

bash
# デフォルトにリセット
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など)をバックアップしてください。

bash
# iosフォルダのバックアップを作成
cp -r ios ios_backup

# 既存のiosフォルダを削除
rm -rf ios

# Flutterクリーン実行
flutter clean

# iOSプロジェクトを再生成
flutter create .

# バックアップから必要なファイルを復元
# (例: GoogleService-Info.plist, カスタム設定など)

5. キーチェーンのロック解除

証明書関連の問題が原因の場合:

bash
security unlock-keychain
# またはパスワード指定で
security unlock-keychain -p <password>

その他の解決策

上記で解決しない場合、以下の方法を試してみてください:

シミュレーターの再作成

bash
# Xcodeで新しいシミュレーターを作成する
open -a Xcode
# Window > Devices and Simulators から新しいシミュレーターを追加

特定のファイルの問題修正

pubspec.yamlのバージョン表記に問題がある場合:

yaml
version: 1.0.0+1
yaml
version: "1.0.0+1"  # 文字列としてクオーテーションで囲む

Apple Watchの電源オフ

意外な原因として、接続されたApple Watchがビルドプロセスに干渉することがあります。ビルド時にApple Watchの電源をオフにしてみてください。

根本的な原因

このエラーは、Xcode 13.3のバグや不整合が原因で発生することが多く、以下のような要因が考えられます:

  1. Xcodeとコマンドラインツールのバージョン不整合
  2. キャッシュデータの破損
  3. FlutterとXcodeの連携問題
  4. プロジェクト設定の不備

INFO

このエラーメッセージ自体は警告として扱われる場合があり、実際のビルド失敗は他の要因(スクリプトエラー、設定不備など)であることも多いです。

予防策

今後同様の問題を防ぐために:

  1. 定期的な更新: Xcode、Flutter、コマンドラインツールを最新状態に保つ
  2. バージョン管理: プロジェクトの重要な変更は必ずGitなどで管理する
  3. バックアップ: iOSフォルダを変更する前にバックアップを取る習慣をつける

まとめ

「Requested but did not find extension point」エラーは様々な要因で発生しますが、ほとんどの場合、上記の解決策のいずれかで解決できます。基本的なクリーンアップから始め、段階的に高度な解決策を試していくことをお勧めします。

問題が解決しない場合は、FlutterのGitHubイシューで同様の問題を検索したり、新しいイシューを作成したりすることを検討してください。