Flutter build ipa failed: "module not found" error during archive troubleshooting
Fixes module not found - Flutter build ipa archive in a mobile release pipeline by working through the specific checks and corrections for this failure. Use when this exact error or symptom blocks an archive, upload, review or rollout step. Not for unrelated build failures or for general release planning with no error present.
TL;DR
Regenerate the iOS dependency graph so the missing module exists at archive time: run flutter clean, fetch packages, reinstall pods, and confirm the module is a real dependency of the release configuration. Most cases are a pod that was added but never installed, a plugin that only supports device builds, or a stale generated registrant. A clean rebuild after pod install clears the majority of these archive failures.
module not found - Flutter build ipa archiveUse this when
- flutter build ipa stops in Xcode with module not found naming a plugin or pod.
- The app runs in debug on a simulator but fails the release archive.
- A plugin was added or upgraded since the last successful release.
Not for this skill when
- The missing module is your own Swift module with a broken import. That is a project structure issue.
- The error appears in Dart code as a package import failure. That is a pubspec resolution problem instead.
Steps
- Note the exact module name in the first error line, ignoring the cascade of later errors. Verify: one module name is identified as the root failure
- Run flutter clean and flutter pub get, then pod install inside the ios folder so the Podfile.lock regenerates. Verify: pod install completes and lists the module among installed pods, or reports why it cannot
- Check the plugin supports iOS release builds and is not limited to simulator or debug configurations in the Podfile. Verify: the Podfile shows no debug-only restriction for that pod
- Open the workspace, not the project file, and confirm the Pods targets build for the Release configuration. Verify: the workspace opens and the pod appears in the Pods project targets
- Delete derived data so Xcode rebuilds the module map from the fresh pods. Verify: derived data folder is recreated during the next build
- Run flutter build ipa again. Verify: the archive completes and the IPA path is printed
- Record the fix in the release runbook or the CI job notes, naming the error, the value or setting that changed, and the date, so the next release engineer does not re-diagnose it from scratch. Verify: the runbook or job notes contain an entry for this error that a teammate can find by searching the error text
Why it happens
Flutter iOS release builds compile plugins as CocoaPods modules. If the pod was never installed, was excluded from the release configuration, or the generated files are stale after an upgrade, the Swift or Objective-C compiler cannot resolve the module import during archive, even though debug simulator runs may have used cached artefacts. The error names the missing module; everything after it is fallout.
In practice this failure is rarely a one-off. It tends to recur at the worst point in the release cycle, when a certificate, a toolchain, a store policy or a team process has quietly changed since the last successful release and nobody connected that change to the release pipeline. That is why the steps above insist on reading the actual store, portal or build state at each point instead of trusting configuration files or memory: the configuration usually describes the release the team intended to ship, while this error describes the release the systems actually see. Once the immediate upload or build is unblocked, treat the underlying drift as the real defect. Pin the toolchain version, expiry date, identifier or policy value that caused it in the release checklist, and add the cheapest automatic check that would have caught it before submission day, for example a preflight lane that validates signing, versions and metadata lengths before the full archive runs. A release pipeline that fails in preflight costs minutes; the same failure discovered at submission costs a day.
Variants and edge cases
Flutter module not found archive iOS pod
Pod-focused phrasing; clean and reinstall pods. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
flutter build ipa module not found plugin
Plugin-focused phrasing; verify the plugin is installed for the release configuration. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
Edge case: use_frameworks and static linkage
Some plugins require a specific linkage setting in the Podfile. Match the plugins documented setting and reinstall pods after changing it. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_SqqwgvGdTwW6XYEoLaw8iw