ld: 1 duplicate symbol for architecture arm64, two SDK in swift3 - ios

Hi I working with two 2 SDK , moca and sentencie,
now the problem is when compile Xcode show me:
duplicate symbol _kReachabilityChangedNotification in:
/Users/dortiz/Documents/IOS/ProcIOS/Pods/MOCA/libMOCALib.a(APPLReachability.o)
/Users/dortiz/Documents/IOS/ProcIOS/Frameworks/SENTTransportDetectionSDK.framework/SENTTransportDetectionSDK(Reachability.o)
ld: 1 duplicate symbol for architecture arm64 clang: error: linker
command failed with exit code 1 (use -v to see invocation)
The problem is I can't edit Reachability.o or APPLReachability.o
because, are libraries, what I can do to fix it?

There are many solution you can try out :-
Means that you have loaded same functions twice. As the issue disappear after removing -ObjC from Other Linker Flags, this means that this option result that functions loads twice.
Changing 'No Common Blocks' from Yes to No ( under Targets->Build Settings->Apple LLVM - Code Generation ) fixed the problem.
Please check your imported any .m file instead of .h by mistake.

Related

How to fix "Apple Mach-O Linker Error Group - clang: error: linker command failed with exit code 1 (use -v to see invocation)" Error

i create a new project with single page application, then i removed ViewController.h and .m file also deleted my story boards because i wanted to make a new class with UITableView subclass, after i build new storyBoard and changed the Main storyboard file base name in info.plist file to the new storyboard then i've got this error:
Apple Mach-O Linker Error Group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
can anyone help me with it?
i figured out something, when i create NSManagedSubclass from my .xcdatamodeld core data file, it make 4 sub class for each entity like the pictur below:
and thats where the problem will create, i read that the problem is dublicate file, maybe duplicate #import syntax, i dont know how to fix this i tried to fix it by put the 2 .h file for each entity together but it didnt work and i've got more errors, so i appreciate if you guys help me.
this is the log:
duplicate symbol _OBJC_CLASS_$_Note in:
/Users/arashafshar/Library/Developer/Xcode/DerivedData/To_Dooz-eixtgqgyctrejleziaoxshnkdnym/Build/Intermediates/To Dooz.build/Debug-iphonesimulator/To Dooz.build/Objects-normal/x86_64/Note+CoreDataClass.o
duplicate symbol _OBJC_METACLASS_$_Note in:
/Users/arashafshar/Library/Developer/Xcode/DerivedData/To_Dooz-eixtgqgyctrejleziaoxshnkdnym/Build/Intermediates/To Dooz.build/Debug-iphonesimulator/To Dooz.build/Objects-normal/x86_64/Note+CoreDataClass.o
duplicate symbol _OBJC_CLASS_$_Setting in:
/Users/arashafshar/Library/Developer/Xcode/DerivedData/To_Dooz-eixtgqgyctrejleziaoxshnkdnym/Build/Intermediates/To Dooz.build/Debug-iphonesimulator/To Dooz.build/Objects-normal/x86_64/Setting+CoreDataClass.o
duplicate symbol _OBJC_METACLASS_$_Setting in:
/Users/arashafshar/Library/Developer/Xcode/DerivedData/To_Dooz-eixtgqgyctrejleziaoxshnkdnym/Build/Intermediates/To Dooz.build/Debug-iphonesimulator/To Dooz.build/Objects-normal/x86_64/Setting+CoreDataClass.o
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Follow carefully the instructions in this Technical Q&A. I think you might have not done step 2 in the first figure, where you need to select "Manual/None" in the "Codegen" dropdown.
Below solutions might work.
Try to find if there is any place where you have imported .m instead of .h file
if you are using cocoa pods then open .xcworkspace instead of .xcodeproj file
Here are some useful links for this kind of errors
Apple Mach-O Linker & Ditto Error - Xcode 8
Apple Mach-O Linker Error when compiling for device
Navigate to Build Phases in Xcode, then try to find if there were duplicated files in Compile Sources.
Hope that would hep you

How to get past this duplicate symbol error (Vungle, CodePush)?

How do I get past this error?
duplicate symbol _zipOpen4 in:
/Users/a/app/app-client/ios/Pods/VungleSDK-iOS/VungleSDK.embeddedframework/VungleSDK.framework/VungleSDK(vungle_zip.o)
/Users/a/Library/Developer/Xcode/DerivedData/AppClient-hirdjpuiiuosayehatqakfrifyvs/Build/Products/Debug-iphoneos/libCodePush.a(zip.o)
ld: 1 duplicate symbol for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The duplicate symbol is fairly generic and co-relates to many things. In this case
There could be three reasons. Vungle and CodePush might be using same constant names. Or Vungle may internally be using CodePush or vice-versa.
Try to include only one in them and see if it works. Chances are that you might be using both libraries in same interface/implementation if so try splitting code into multiple files.

Duplicate symbol _OBJC_CLASS_$_Base64

I am trying to add mobile.connect.framework to the existing project. Before adding the framework, The application is building and running properly. But, as soon as I am adding the framework, it is giving the Duplicate symbol OBJC_CLASS$_Base64 error. I went through numerous posts like Duplicate Symbol OBJC_CLASS$_LoginController
and How duplicate symbol problem arises. But was unable to find the solution.
Please help me how to resolve this one. It has already consumed my half a day.
Error :-
ld: warning: directory not found for option '-L/Users/shailendra.suriyal/Documents/MyProjects/..../UberNewUser/ExternalLib/CardIO' duplicate symbol _OBJC_CLASS_$_Base64 in: /Users/shailendra.suriyal/Library/Developer/Xcode/DerivedData/./Build/Intermediates/Muri.build/Debug-iphonesimulator/Muri.build/Objects-normal/x86_64/Base64.o /Users/shailendra.suriyal/Documents/MyProjects/..../UberNewUser/ExternalLib/FrameWork/mobile.connect.framework/mobile.connect duplicate symbol _OBJC_METACLASS_$_Base64 in: /Users/shailendra.suriyal/Library/Developer/Xcode/DerivedData/hadqxhhslzvmwfddwlthosrdljjy/Build/Intermediates/.../Debug-iphonesimulator/Muri.build/Objects-normal/x86_64/Base64.o /Users/shailendra.suriyal/Documents/MyProjects/.../UberNewUser/ExternalLib/FrameWork/mobile.connect.framework/mobile.connect ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Finally, I got it. I just removed the Base64.h from the compiled resources under Build Phases.
You seem to be linking both the source and the library for the Base64 class.
This line...
/Users/shailendra.suriyal/Library/Developer/Xcode/DerivedData/Muri-hadqxhhslzvmwfddwlthosrdljjy/Build/Intermediates/Muri.build/Debug-iphonesimulator/Muri.build/Objects-normal/x86_64/Base64.o
...says you've compiled the class directly.
This one...
/Users/shailendra.suriyal/Documents/MyProjects/taxi_ios_client/UberNewUser/ExternalLib/FrameWork/mobile.connect.framework/mobile.connect
...says you're linking it from inside the mobile.connect.framework binary.
If you're using it from the library, you should remove the source from your project.
(If you've already removed the source and you're still getting this, delete the derived data and try again.)
DUPLICATE FILE CREATES OF "LoginController"

Conflicting libraries in iOS project

So basically I have two libraries that are I think conflicting with each other. I have the following settings for the key "Library Search path":
"$(SRCROOT)/projectname/Release-iphone/lib" for one of my libraries, and "$(SRCROOT)/projectname" for another.
I have added a CorePlot library into my project but to work it requires the following Linker Flags: -ObjC -all_load.
Now when I add one or both of them I get the following message and my project won't build:
duplicate symbol _OBJC_CLASS_$_GTMHTTPFetcher in:
/Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
/Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
duplicate symbol _OBJC_METACLASS_$_GTMHTTPFetcher in:
/Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
/Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
ld: 176 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The problem turns out to be with the Google API library libGTLTouchStaticLib.a but I don't get how do linker flags influence it.
It looks as though you have the source file included directly into your project as well as having a link to the library. You should choose one or the other (probably the library).
screw -all_load that was a hack to load categories. should work without it

Xcode gives Apple Mach-O linker error

I just compiled a project and Xcode returns these two errors which don't seem to be my code's fault. How do I fix them?
Undefined symbols for architecture i386:
"_vImageBoxConvolve_ARGB8888", referenced from:
-[UIImage(Blur) boxblurImageWithBlur:] in UIImage+Blur.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Teaching a man (or women) how to fish:
Usually Mach-O Linker Error means you have not included a header file for a function you are using in your code.
Easiest way is to copy that function or method call and paste into Xcode quick search using shift+command+O. This will search all frameworks (and header files), find that function or method call and show you its location (the header in this case):
In this case, this call belongs to the Accelerate framework so on top of your file, enter:
#import <Accelerate/Accelerate.h>
When doing quick search, you might have to get rid of leading underscore. In other words, search for vImageBoxConvolve_ARGB8888
Hope this helps
Google is your friend: someone else fixed this by adding the Accelerate framework to their project (and this does look like a framework error).
https://github.com/rnystrom/RNBlurModalView/issues/5
Make sure you also have the QuartzCore framework included as well, as that is also required by that library.
Apparently vImageBoxConvolve_ARGB8888() is not defined. See if the Accelerate framework is properly included in the project.

Resources