BugMedic

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.

By BugMedic editorial teamLast source review: 2026-09-27macOS

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

01

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.

02

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/null
03

Set 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

04

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 install

Interpret 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.

Related CocoaPods guides