🏋️

【Flutter】Home Screen widgetのビルドエラーを回避する

に公開

概要

Flutterにてiosアプリを作成中、下記エラーが発生していたので回避方法をメモ

https://codelabs.developers.google.com/flutter-home-screen-widgets?hl=ja#0

このURLのHome Screen widget作成のチュートリアルを進めている時にぶつかった

Cycle inside Runner; building could produce unreliable results.

エラー↓

Cycle inside Runner; building could produce unreliable results.
Cycle details:
→ Target 'Runner' has copy command from '/Users/user/Library/Developer/Xcode/DerivedData/Runner-dztyxwurniqrlmftkejhkmvfdknl/Build/Products/Debug-iphonesimulator/AppWidgetExtension.appex' to '/Users/user/Library/Developer/Xcode/DerivedData/Runner-dztyxwurniqrlmftkejhkmvfdknl/Build/Products/Debug-iphonesimulator/Runner.app/PlugIns/AppWidgetExtension.appex'
○ That command depends on command in Target 'Runner': script phase “Thin Binary”
○ Target 'Runner' has process command with output '/Users/user/Library/Developer/Xcode/DerivedData/Runner-dztyxwurniqrlmftkejhkmvfdknl/Build/Products/Debug-iphonesimulator/Runner.app/Info.plist'
○ Target 'Runner' has copy command from '/Users/user/Library/Developer/Xcode/DerivedData/Runner-dztyxwurniqrlmftkejhkmvfdknl/Build/Products/Debug-iphonesimulator/AppWidgetExtension.appex' to '/Users/user/Library/Developer/Xcode/DerivedData/Runner-dztyxwurniqrlmftkejhkmvfdknl/Build/Products/Debug-iphonesimulator/Runner.app/PlugIns/AppWidgetExtension.appex'

原因

ChatGPTによれば、

このエラーは Xcodeのビルドシステムが依存関係のループ(循環依存)を検出した ことによるものです。
つまり、Runner ターゲットと AppWidgetExtension の間で お互いに依存し合う処理が発生しているため、ビルドが完了できない状態 です。

なので、Build Phasesの順番を変更してあげる

解決策

RunnerのBuild Phasesの順番を下記のようにする

具体的には「Thin Binary」と「[CP] Embed Pods Frameworks」を下に持ってくる

Discussion