筆者の環境
Flutter (Channel stable, 3.22.3, on macOS 15.3.2 24D81 darwin-arm64, locale ja-JP)
Android toolchain - develop for Android devices (Android SDK version 35.0.0)
Xcode - develop for iOS and macOS (Xcode 16.2)
Android Studio (version 2024.3)
Flutterで突然iOSがビルド出来なくなりました。
エラー抜粋
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS Simulator, id:928E96F5-10C9-4187-B5E4-E3B77E4043D0, OS:18.3.1, name:iPhone 16 }
{ platform:iOS Simulator, id:928E96F5-10C9-4187-B5E4-E3B77E4043D0, OS:18.3.1, name:iPhone 16 }
** BUILD FAILED **
他ログを見ると、Library/Developer/Xcode/DerivedData周りでエラーが出ている模様でした。正直いじった記憶が無いので、途方にくれました💦
解決策
こちらの方法を試すことで無事シミュレーターでのビルドが可能になりました。
Xcode → Settings... → LocationsタブのDerived DataをDefaultからRelativeに変更します。
現在のDerived DataがDafaultの設定だとFlutterからのBuildに対応できていないようです。(runnerからXcodeで直接ビルドするとDafault設定でもビルドは出来ました)
体感ですが、Swiftで開発している際にDerived Dataの設定がRelativeだと、ビルド時間が長くかかっていると感じました。
面倒ですが、ネイティブでの開発時はDerived DataをDefaultに、Flutterでの開発時にはRelativeで開発するのが現状は良さそうです。
追記:
Derived DataがRelativeの場合、Swiftで開発時にBreakPointを貼ってデバッグしようとすると、ブレークポイントで止まらない現象が発生しました。(これはmacOSが15.4, Xcodeが16.2の場合に発生する模様)
なので、Xcodeを16.3にアップデートで現状の問題は解決していましたので(Derived DataDefaultでもFlutterでビルド出来る)、アップデートするのが推奨になりそうです(podライブラリの対応次第)