Undefined symbols for architecture 🍎 iOS

Undefined symbol(s) for architecture arm64 — linker command failed with exit code 1

The linker can’t find the implementation of a symbol your code uses — a missing framework/library, a file not in the target, or an architecture mismatch.

Seen on: iOS

Meaning

Classes defined in files not added to the target, static libraries missing from Link Binary With Libraries, Objective-C categories without -ObjC, or libraries built without arm64 simulator slices cause this.

Common causes

  • Source file not a member of the target
  • Framework/library not linked
  • Library missing the needed architecture slice
  • C++ / Objective-C symbol name issues (-ObjC, -lc++)

⚡ Quick fix

  1. Check Target Membership of the file defining the symbol
  2. Add the framework to Link Binary With Libraries
  3. Use XCFrameworks with simulator arm64 slices

Detailed fix by platform

Shell

  1. swift
    lipo -info libThirdParty.a
    nm -gU libThirdParty.a | grep MissingSymbol

How to diagnose

  1. Symbol — Which one?
  2. Membership — File in target?
  3. Arch — lipo -info shows arm64?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.