Bolts Apple Mach-O Linker Error - ios

duplicate symbol _BFMeasurementEventArgsKey in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _BFAppLinkParseEventName in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _BFAppLinkNavigateInEventName in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _BFAppLinkNavigateOutEventName in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _BFAppLinkNavigateBackToReferrerEventName in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _OBJC_CLASS_$_BFMeasurementEvent in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
duplicate symbol _OBJC_METACLASS_$_BFMeasurementEvent in:
/Users/BaselFarag/Library/Developer/Xcode/DerivedData/TokenApp-dqdwcnpmpvwcdadwwxpinxtlvuoa/Build/Products/Debug-iphonesimulator/libPods-TokenApp-Bolts.a(BFMeasurementEvent.o)
/Users/BaselFarag/Desktop/src/tokenapp/Bolts.framework/Bolts(BFMeasurementEvent.o)
ld: 91 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
So I understand that there are duplicates in my files and that's why I'm receiving this error (at least that what I think it the problem according to the ld). What I don't know how to do is reconcile the multiple files. I tried just removing Bolt entirely but that just made Xcode angry. REAL angry. Any help on how to solve this one? I'm pretty sure this is an easy one but I'm a noob.

Answer for future consultation:
What solved my issue in the end was starting from scratch and installing my dependencies via Cocoapods. It appears if you try to add a framework via a drag and drop and then later user= Cocoapods the previous framework will not be noticed by Cocoapods and Cocoapods will attempt to install that very same framework again.
So when using dependencies either only use drag and drop or only use Cocoapods from the get go. Do not try to mix and match.

Related

AppRTC is showing duplicate symbol for architecture x86_64

I've a unique problem. I'm including the AppRTC in my project via. podfile. It is successfully getting installed and along with it libjingle_peerconnection and SocketRocket libraries are also getting installed. However when I build my project it shows duplicate symbol error for libWebRTC.a and gives the following message -->
duplicate symbol _RTCFileName in:
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(libjingle_peerconnection_objc.RTCLogging.o)
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(rtc_base_objc.RTCLogging.o)
duplicate symbol _RTCLogEx in:
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(libjingle_peerconnection_objc.RTCLogging.o)
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(rtc_base_objc.RTCLogging.o)
duplicate symbol _RTCSetMinDebugLogLevel in:
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(libjingle_peerconnection_objc.RTCLogging.o)
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(rtc_base_objc.RTCLogging.o)
duplicate symbol __Z27RTCGetNativeLoggingSeverity18RTCLoggingSeverity in:
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(libjingle_peerconnection_objc.RTCLogging.o)
(My project path)/Pods/libjingle_peerconnection/libjingle_peerconnection/libWebRTC.a(rtc_base_objc.RTCLogging.o)
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've tried everything related to this but with no success. So please help me to solve it or atleast tell why this is happening.

Duplicate Symbol Linker Error With Firebase CocoaPods

I had been developing a an iPad iOS app using the simulator until recently when I got my hands on an iPad with iOS 8.
I had been adding a couple of frameworks and going on just fine and the project has always built and run fine for the simulator (and it still does).
However, building for the device fails with an error about duplicate symbols (220 of them!) for the Firebase (2.5.0) Target in the Pods Project. I tried all the basics of cleaning the project, making sure Obj-C related flags were in place, but nothing.
I decided to see if somehow during work some configuration got broken so I tested on a fresh project, with Firebase as the only Pod and with nothing else done but setting up the workspace with 'pod install' and I get the exact same error.
All the duplicate symbols seem to be regarding the same file (libFirebaseStatic.a) and very many o-files.
This is the error, but I have chopped off a large middle part of the error for obvious reasons:
duplicate symbol _llvm.cmdline in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FBase64Utilities.o)
duplicate symbol _llvm.embedded.module in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FBase64Utilities.o)
duplicate symbol _llvm.cmdline in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FLevelDBStorageEngine.o)
.
.
.
duplicate symbol _llvm.embedded.module in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FTransformedEnumerator.o)
duplicate symbol _llvm.cmdline in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FClock.o)
duplicate symbol _llvm.embedded.module in:
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
/Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FClock.o)
ld: 220 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Don't ask me why or how, but updating Xcode (to 7.2) solved this issue. I did not pay attention to what was my previous version before updating but it had to be 7.1 or 7.1.1.
In any case, the issue is gone. I assume that the Firebase library had compiling requirements only met by the latest update to Xcode.

Google Maps 1.10.1 iOS with cocoapods giving duplicate symbol error

I am trying to integrate the new GoogleMaps sdk 1.10.1 and I followed the quick start from https://developers.google.com/maps/documentation/ios/start
But I am getting the following error and i got stuck with duplicate symbol error.
GoogleMaps(ResourceContext.o)
duplicate symbol __ZN7gmscore8renderer14DepthMaskStateC1Eb in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZN7gmscore8renderer14DepthMaskStateC2Eb in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZN7gmscore8renderer14DepthMaskStateD0Ev in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZN7gmscore8renderer14DepthMaskStateD1Ev in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZN7gmscore8renderer14DepthMaskStateD2Ev in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZNK7gmscore8renderer14DepthMaskState11StringValueEv in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZNK7gmscore8renderer14DepthMaskState7PreDrawEPNS0_14EntityRendererERKNS_4base10reffed_ptrINS0_11EntityStateEEE in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZNK7gmscore8renderer14DepthMaskState8PostDrawEPNS0_14EntityRendererERKNS_4base10reffed_ptrINS0_11EntityStateEEE in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZTVN7gmscore8renderer14DepthMaskStateE in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(DepthMaskState.o)
duplicate symbol __ZN7gmscore8renderer15GLScopedContextC1EP15GMSIOSGLContext in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GLScopedContext.o)
duplicate symbol __ZN7gmscore8renderer15GLScopedContextC2EP15GMSIOSGLContext in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GLScopedContext.o)
duplicate symbol __ZN7gmscore8renderer15GLScopedContextD1Ev in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GLScopedContext.o)
duplicate symbol __ZN7gmscore8renderer15GLScopedContextD2Ev in:
/Users/klouddata/Documents/SVN_RIL/RTSS_iOS_B200/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GLScopedContext.o)
ld: 706 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I had the same problem and I have fixed it by removing -all_load from Other Linker Flags and I let CocoaPods to set my flags.
Check your project settings for this flag.
I've noticed same problem with Xcode 6.2. No problem at all with Xcode 6.3.2
Workaround would be to use
pod 'GoogleMaps', '1.9.2'
which working fine for me (with Xcode 6.2)
check your Other Linker Flags probably you have $(inherited) with other flag to GoogleMaps -framework "GoogleMaps". I recommend set just $(inherited)
I had similar problem where there some other entries along with -ObjC in Other Linker Flags. Removing all other values except -ObjC solved my problem.
Updating XCode to the latest version and using $(inherited) as Other Linker Flags option solved this problem for me.

Build Error with AWS SDK iOS

I downloaded the SDK from the Cognito service, and installed it under this instruction (http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html).
I installed the pod, and added the frameworks to my project. When I tried to run my project, I got an error including ld: 6705 duplicate symbols for architecture x86_64.
For example:
duplicate symbol _OBJC_CLASS_$_AWSEC2ResponseSerializer in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
duplicate symbol _OBJC_METACLASS_$_AWSEC2ResponseSerializer in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
duplicate symbol _OBJC_CLASS_$_AWSEC2RequestRetryHandler in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
duplicate symbol _OBJC_METACLASS_$_AWSEC2RequestRetryHandler in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
duplicate symbol _OBJC_CLASS_$_AWSEC2 in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
duplicate symbol _OBJC_METACLASS_$_AWSEC2 in:
/Users/haichen/Library/Developer/Xcode/DerivedData/AWSTest-ceywyjkmugdxssfeodliqhmuehlz/Build/Products/Debug-iphonesimulator/libPods-AWSEC2.a(AWSEC2Service.o)
/Users/haichen/Documents/AWSTest/aws-ios-sdk-2.1.1/frameworks/AWSEC2.framework/AWSEC2(AWSEC2Service.o)
ld: 6705 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Could anyone help me find out the reason?
Close your project.
Clear all derived data.
Quit Xcode and reopen it
Make sure you open .xcworkspace file instead of .xcodeproj of your project.
To clear Derived Data:
XCode -> Window -> Projects
Select your project
press delete button in front of derived data
Let me know if it help
It looks like you are using both the frameworks and Cocoapods. You cannot import the SDK using both of the methods at the same time. You need to choose one of them and remove the other one.
Try deleting the derived data, clean the proj and re-compile.

Linker error Unrar4iOS framework

I have added Unrar4iOS framework and getting below linker error.
How to fix this?
duplicate symbol __Z12CallbackProcjlll in:
/Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/Unrar4iOS.o
/Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS.header in:
/Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS._rarFile in:
/Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/Unrar4iOS.o
/Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(Unrar4iOS.o)
duplicate symbol _OBJC_IVAR_$_Unrar4iOS.filename in:
/Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(RARExtractException.o)
duplicate symbol _OBJC_EHTYPE_$_RARExtractException in:
/Users/dmitryvlasenko/Library/Developer/Xcode/DerivedData/UnrealReader-cpvucqqjfnkeppcasgjdrwasaryu/Build/Intermediates/UnrealReader.build/Debug-iphonesimulator/UnrealReader.build/Objects-normal/i386/RARExtractException.o
/Users/dmitryvlasenko/Desktop/UnrealReader/Unrar4iOS.framework/Unrar4iOS(RARExtractException.o)
ld: 12 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The error indicates to you that Unrar4iOS is both defined in Unrar4iOS.a and as individual file in your project.
So go to:
TargetSettings->Build Phases->Link Binary with Libraries and remove the Unrar4iOS.
Seems you have added the same library twice thats why it says "duplicate symbol __Z12CallbackProcjlll "
The Unrar library is written in C++. If you don't have any .mm files in your project, then Xcode doesn't link against the C++ standard library, and all the references to C++ fail to link.
Here is a compiled test well framework: Unrar4iOS.framework

Resources