Duplicate Symbols for Architecture arm64

IosObjective CXcodeLinker Errors

Ios Problem Overview


When I try running my Xcode Project it fails with an error stating that I have duplicate symbols. I looked online where the find these duplicates but have had no luck:

enter image description here

Any ideas how to fix this?

Ios Solutions


Solution 1 - Ios

For me it helped to switch the "No Common Blocks" compiler setting to NO: It pretty much seems to make sense, the setting is explained here: https://stackoverflow.com/questions/11233235/what-is-gcc-no-common-blocks-used-for

Solution 2 - Ios

From the errors, it would appear that the FacebookSDK.framework already includes the Bolts.framework classes. Try removing the additional Bolts.framework from the project.

Solution 3 - Ios

Using Xcode 8, "Update project to recommended settings" option turned ON 'No Common Blocks' for my project.

Turning it back to OFF fixed everything up.

Solution 4 - Ios

I've messed up my pods while downgrading a pod and I've managed to resolve the issue with duplicate symbols for architecture arm64 by removing the pods and installing them again with:

pod deintegrate
pod install

Solution 5 - Ios

For me it was that i imported a file as a .m not a .h by mistake

Solution 6 - Ios

Another Solution is to:

> Select Project -> Target -> Build phase -> Compile source -> search > for the file which is mentioned in the 3rd last error line (In your > case BFAppLinkReturnToRefererView.o).

Then you will see either 1 or 2 files in search result.

Remove one of them and compile again. It should recompile now because there is only one file left and no more conflicts for build.

If that doesnt work the file probably has errors in it and you should remove all of them and then recompile. It should work again.

Solution 7 - Ios

Below Patch work for me..:)

Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No

Step 2: Go to TARGETS -> Build Settings -> enable testability -> No

Setting it back to NO solved the problem!

Solution 8 - Ios

On upgrading to Xcode 8, I got a message to upgrade to recommended settings. I accepted and everything was updated. I started getting compile time issue :

Duplicate symbol for XXXX Duplicate symbol for XXXX Duplicate symbol for XXXX

A total of 143 errors. Went to Target->Build settings -> No Common Blocks -> Set it to NO. This resolved the issue. The issue was that the integrated projects had code blocks in common and hence was not able to compile it. Explanation can be found here.

Solution 9 - Ios

If you are moving to Xcode 7 or 8 and are opening a really old project, I've encountered this problem:

in SomeConstFile.h

NSString * const kAConstant;

in SomeConstFile.m

NSString *const kAConstant = @"a constant";

Earlier versions of the compiler assumed that the definition in the header file was extern and so including SomeConstFile.h all over the place was fine.

Now you need to explicitly declare these consts as extern:

in SomeConstFile.h

extern NSString * const kAConstant;

Solution 10 - Ios

This error happens when Linker is trying to link the obj files. Few reasons that i could think of for this error are:

  1. The duplicated Function/Class is defined at two different places/files in the project and only one of them was supposed to compile for any variation of build command. But somehow both those files got compiled in your project. So you need to check your if-else conditions or other dependencies which adds src files to the list of files needed to be compiled and remove the un-needed file for your particular build command.

  2. The duplicated Function/Class is defined accidentally at two different places/files in the project. Remove the wrong definition.

  3. Clean your OBJ directory before you build again, there could be some old obj files in there from your previous builds which might be causing this conflict.

P.S i am no expert, but this is how i solved this problem when i faced it. :)

Solution 11 - Ios

Well, some times when using SDK like FB or Libraries like Vuforia or GoogleAnalytics , adding sample projects may cause the problem that they're already including Frameworks and like so ,so you must make sure not repeating symbols you add manually while they're already included in samples

Solution 12 - Ios

For me, the issue was the style of creation of const, that worked fine until this iOS8.. i had a few lines as:

int const kView_LayoutCount = 3;

in my .h file. Six lines like resulted in 636 linker files once common blocks was set to NO. (14k+ if YES). Moved the lines to .m after stripping .h of the value declaration and compilation was good to go.

Hope this helps others!

Solution 13 - Ios

In my case reason was too stupid :

I had a Constant.h file where I had macros defined. I thought of doing NSString there. and did this :

NSString const *kGreenColor = @"#00C34E";

this caused the problem of Duplicate Symbols for Architecture arm64 and Linker command failed with exit code 1. Removing const NSString line worked for me.

Solution 14 - Ios

check your include file, I had this issue because I accidentally #imported "filename.m" instead of "filename.h", autocorrect (tab) put an "m" not "h".

Solution 15 - Ios

If someone is experimenting this working on Flutter, don't try to pod deintegrate, pod init.

How I solved is running flutter clean, flutter run -d [iOS Device]

Hope can help somebody.

Solution 16 - Ios

Plz Change setting.

Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No

Step 2: Go to TARGETS -> Build Settings -> enable testability -> No

Solution 17 - Ios

From the errors, it would appear any Classes appear multiple time.Find and removed that Classes it will working.

Am creating AppDelegate.h and .m file creating multiple time. So this error will occur.Finally find and removed that classes it's working fine for me.

Solution 18 - Ios

to solve this problem go to Build phases and search about duplicate file like (facebookSDK , unityads ) and delete (extension file.o) then build again .

Solution 19 - Ios

Solution 20 - Ios

For me, I created a method called sampleMethod in ViewController_A and created the same method in ViewController_B too, It caused me this error, then i changed the method name in ViewController_B to secondSampleMethod. It fixed the error.

Seems like a Good feature to reduce the code and not to duplicate the same code in many places.

I tried changing the No Common blocks from Yes to No then enabling testability from Yes to No. It didn't worked. I Checked duplicate files also in build phases, but there is no duplicate files.

Solution 21 - Ios

I got this issue because I was lazily defining a variable in my .m outside of a method, then in another .m file I was defining another variable with the same name outside a method. This was causing a global variable name duplicate issue.

Solution 22 - Ios

The problem for me was I had manually included a framework but then also included that same framework in CocoaPods not knowing I did so. Once I removed one or the other, the problem went away

Solution 23 - Ios

I was able to resolve this error which said "158 duplicate symbols for architecture armv7, 158 duplicate symbols for architecture arm64" --- If this is what you are getting too, then it means you are trying to compile a file which is importing or inheriting a framework or static library having references to C++ code or files. An easy way to handle this would be to change the extension of your .m file to .mm. This is how it gets handled if you are using Objective C, not sure on Swift though.

Also in your build settings - you can update the "other linker flags" to -lc++

Solution 24 - Ios

I got this issue when I had two files that had the same name on accident (large project, oops!)

Ironically they were actually the same file, I just had forgotten that I had already created one as a placeholder weeks earlier and gave it the same name again, haha!

Solution 25 - Ios

Sometime It works with cache cleaning in Xcode using command+shift+k

Mine issue was that I have multiple files with same name, So I removed duplicate files, In console You can see file name Hope can help somebody.

Solution 26 - Ios

Code

  • CrifanLibiOS.h
const int OPEN_OK = 0;
  • CrifanLibiOS.m
#import "CrifanLibiOS.h"
...
// use the const int value
  if (OPEN_OK == openResult){

and:

  • include by other ObjC file
    • openFileViewController.m
#import "CrifanLibiOS.h"

Error

ld: 6 duplicate symbols for architecture arm64

Reason

CrifanLibiOS.h be imported multiple time, and const int is redefined multiple time

Solution

for ObjC, const variable should change to:

  • implementation in xxx.m
    • CrifanLibiOS.m
#import "CrifanLibiOS.h"

const int OPEN_OK = 0;

...
// use the const int value
  if (OPEN_OK == openResult){
  • declaration in xxx.h, MUST with extern
    • CrifanLibiOS.h
extern const int OPEN_OK;

Solution 27 - Ios

I was doing my tutorial, then I divided answers into different files, didn't mean to relate them to make a big program.

I didn't solve the problem until I commented out the remaining lines of the "main.cpp" file to make sure the program can run separately without the influence of it.

I'm not really sure about the principle of it, but I think it might be caused by a conflict of in fact multiple "main.cpp" files.

Just a little discovery from a first-year student, hope can help somebody.

Solution 28 - Ios

I had this on a Flutter project after changing dependency versions. I had to do the following:

pod deintegrate
flutter clean
pod install

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1445205View Question on Stackoverflow
Solution 1 - Iostania_SView Answer on Stackoverflow
Solution 2 - IospiccianoView Answer on Stackoverflow
Solution 3 - IosAdam GView Answer on Stackoverflow
Solution 4 - IosMateaView Answer on Stackoverflow
Solution 5 - IosJason SilverView Answer on Stackoverflow
Solution 6 - Iosuser9168386View Answer on Stackoverflow
Solution 7 - IosSaumil ShahView Answer on Stackoverflow
Solution 8 - IosiosCuratorView Answer on Stackoverflow
Solution 9 - IosDan LoughneyView Answer on Stackoverflow
Solution 10 - IosManyuBishnoiView Answer on Stackoverflow
Solution 11 - IosIsPhaView Answer on Stackoverflow
Solution 12 - Iosdrew..View Answer on Stackoverflow
Solution 13 - Iosuser3693546View Answer on Stackoverflow
Solution 14 - IosMike ZrielView Answer on Stackoverflow
Solution 15 - IosDx_View Answer on Stackoverflow
Solution 16 - IosDnyaneshwar ShindeView Answer on Stackoverflow
Solution 17 - IosKarthick CView Answer on Stackoverflow
Solution 18 - IosMahmoud abualamrienView Answer on Stackoverflow
Solution 19 - IospotloodView Answer on Stackoverflow
Solution 20 - IosR. MohanView Answer on Stackoverflow
Solution 21 - IosAlbert RenshawView Answer on Stackoverflow
Solution 22 - IosMobileMonView Answer on Stackoverflow
Solution 23 - IosManish GuptaView Answer on Stackoverflow
Solution 24 - IosAlbert RenshawView Answer on Stackoverflow
Solution 25 - IosMudassirView Answer on Stackoverflow
Solution 26 - IoscrifanView Answer on Stackoverflow
Solution 27 - IosRinsukiView Answer on Stackoverflow
Solution 28 - IosJared AndertonView Answer on Stackoverflow