🏋️
【Flutter】Home Screen widgetのビルドエラーを回避する
概要
Flutterにてiosアプリを作成中、下記エラーが発生していたので回避方法をメモ
この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