The 'Pods-Runner' target has transitive dependencies that include statically linked binaries: align the linkage
CocoaPods refuses to build a target when dynamic framework linkage conflicts with a transitively included static binary; align the Podfile's linkage with the static binary.
Your Podfile asks for dynamic frameworks but a transitive dependency ships a statically linked binary, and the two cannot mix in one target. Use use_frameworks! :linkage => :static in the Podfile — the linkage option CocoaPods documents for exactly this choice — then run pod install again.
Try these fixes in order
Read which pods bring the static binaries
Read the full error text: after the colon it lists the pods that bring in statically linked binaries. Write down those pod names — they are the constraint everything else must satisfy, because a static binary cannot be repackaged as dynamic.
Find the use_frameworks! line in the Podfile
Open ios/Podfile (or the Podfile at your project root) and find the use_frameworks! line. A bare use_frameworks! builds pods as dynamic frameworks, which is what conflicts with the static binaries named in the error.
grep -n "use_frameworks" Podfile ios/Podfile 2>/dev/nullSet the linkage to static
CocoaPods' Podfile reference documents a :linkage option for use_frameworks!, accepting :static or :dynamic. Set it to :static so the pods build as static frameworks, which is compatible with the statically linked binaries the error names. Edit the line in your Podfile to read: use_frameworks! :linkage => :static
Reinstall pods and rebuild
Re-run pod install so CocoaPods regenerates the Pods project with static linkage, then rebuild the app target. The error is gone when the Pods-Runner (or your app's Pods) target integrates without the transitive-dependency complaint.
pod installInterpret what you see
The error names one specific pod as the statically linked binary
What it suggests: That pod vendors a static binary (a .a archive or a static .framework), which cannot travel transitively through dynamic frameworks.
Next check: Confirm the pod's packaging in its podspec, then keep the target on static linkage rather than fighting it.
The Podfile has a bare use_frameworks! with no :linkage option
What it suggests: Without :linkage, use_frameworks! defaults to dynamic frameworks, which is exactly what the static binary conflicts with.
Next check: Change the line to use_frameworks! :linkage => :static and run pod install again.
The failing target is Pods-Runner in a Flutter project
What it suggests: Flutter's Runner target is set up for static linkage; dynamic frameworks break the assumptions of the Flutter tooling.
Next check: Check ios/Podfile for use_frameworks! :linkage => :dynamic (sometimes added for a Swift plugin) and switch it to :static.
The error persists after switching to :linkage => :static
What it suggests: Two pods in the same target want different linkage styles, and the static binary is the one CocoaPods reports.
Next check: Look for a podspec with s.static_framework = true; that pod forces the whole target's hand toward static linkage.
Why this happens
- use_frameworks! without an explicit linkage builds pods as dynamic frameworks, while one of the transitive dependencies vendors a statically linked binary — CocoaPods cannot link a static binary transitively through a dynamic framework target.
- A podspec declares s.static_framework = true (or ships a .a / static .framework) while the Podfile requests dynamic linkage for the target; the two packaging choices are mutually exclusive in one target.
Still not working?
If the steps fail, record the exact pod names the error lists as statically linked, the use_frameworks! line (or its absence) in ios/Podfile, and whether any involved podspec sets s.static_framework = true. Do not flip linkage back and forth repeatedly: each change requires a fresh pod install and a clean rebuild of the affected target to be meaningful.
Official sources
These steps are based on the linked documentation and general diagnostics. BugMedic has not independently tested every product and system configuration. Review commands before running them.