Flutter iOS Project: WidgetKit Extension Not Embedding / Build Cycle Error

Hi,

I need your opinion about an issue we faced while trying to implement an iOS widget in our Flutter app.

Here is what we did and the problems we encountered:

  • We created a Widget Extension (SwiftUI + WidgetKit) inside the existing Flutter iOS project.
  • The widget files were generated correctly (Widget.swift, WidgetBundle.swift, Info.plist, etc.).
  • However, during the integration, we faced multiple issues:
  1. Build Cycle Error

We repeatedly got: “Cycle inside Runner; building could produce unreliable results”
This was related to embedding the widget extension into the Runner target.

  1. Embed Problems
  • Sometimes Xcode did not automatically create the “Embed App Extensions” phase.
  • When we added it manually → build cycle errors appeared.
  • When we removed it → the widget was not embedded at all (no PlugIns folder in Runner.app).
  1. Duplicate / Conflicting Embed
  • The extension appeared both in:
    • “Embed Foundation Extensions”
    • “Frameworks, Libraries, and Embedded Content”
  • Removing one often broke the build or removed the other as well.
  1. Widget Not Appearing

Even when build succeeded:

  • Widget did not appear on device
  • PlugIns/Widget.appex was missing from build output
  1. Flutter Linking Errors

In another test project, we got: Undefined symbol: _FlutterMethodChannel
Undefined symbol: _FlutterBasicMessageChannel
etc.

This happened because the widget extension tried to link Flutter dependencies, which should not happen.

  1. App Group Confusion

We also tried adding App Group (group.com.xxx), but behavior didn’t change.


Conclusion:

We suspect the root issue is:

  • The Flutter template we are using was not designed for WidgetKit integration
  • Xcode embedding phases and Flutter build scripts conflict with extension targets

Question:

In your opinion:

  • Is this a known limitation with Flutter-based iOS projects?
  • Is there a clean way to integrate WidgetKit without breaking the Runner target?
  • Or is it better to create a separate native iOS module for the widget?

Any guidance would be really appreciated.

Thanks!

Flutter iOS Project: WidgetKit Extension Not Embedding / Build Cycle Error
 
 
Q