Resolving Duplicate Symbols for Architecture x86_64 in Xcode

Resolving Duplicate Symbols for Architecture x86_64 in Xcode

6 June 2024 Stephan Petzl Leave a comment Tech-Help

Encountering the “duplicate symbols for architecture x86_64” error in Xcode can be a frustrating experience, especially when you are in the middle of a development sprint. This error typically indicates that you have loaded the same function or symbol multiple times during the build process. Let’s explore some effective solutions to resolve this issue.

Common Solutions

Here are some common solutions that have proven effective for many developers:

  • Change ‘No Common Blocks’ to No:

    Navigate to Targets -> Build Settings -> Apple LLVM - Code Generation and set No Common Blocks to No. This change can often resolve the duplicate symbols issue.

  • Check for Imported .m Files:

    Ensure that you have not mistakenly imported a .m file instead of a .h file. Incorrect imports can lead to duplicate symbol errors.

  • Remove -ObjC from Other Linker Flags:

    If you have added -ObjC to the Other Linker Flags, try removing it. This flag can cause the linker to load every object file in the library that defines an Objective-C class or category, leading to duplicate symbols.

  • Check for Duplicate Files:

    Go to Targets -> Build Phases -> Compile Sources and ensure that no files are listed more than once. Remove any duplicate entries.

  • Pod Deintegration and Reinstallation:

    If you are using Cocoapods, run the following commands in the terminal:

    pod deintegrate
    pod install

    This can help resolve issues that arise after updating pods.

Advanced Solutions

If the common solutions do not resolve your issue, consider the following advanced solutions:

  • Check for Global Variables:

    Ensure that you are not declaring global variables with the same name in different files. Use static to limit the scope to the class or module.

  • Update Enum Declarations:

    If you are using enums, consider updating your declarations to use NS_ENUM for better type safety and to avoid duplicate symbols.

  • Manual Inspection of .pbxproj:

    If you have had a .pbxproj merge conflict, manually inspect and remove duplicate references to class files in the .pbxproj file.


Resolving duplicate symbols for architecture x86_64 in Xcode can be challenging, but with the right approach, it is manageable. By following the solutions outlined above, you can effectively troubleshoot and resolve this issue.

How Repeato Can Help

If you are a mobile developer, ensuring that your code is free from such errors is crucial for maintaining a smooth development workflow. This is where Repeato, our no-code test automation tool for iOS and Android, can be invaluable. With Repeato, you can automate tests quickly and efficiently, allowing you to focus on developing your app rather than dealing with repetitive testing tasks. Learn more about how Repeato can enhance your development process on our documentation page.

Like this article? there’s more where that came from!