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.
Related
I tried to archive an IOS project with ReactNative. Got this error:
duplicate symbol _OBJC_IVAR_$_RCTWebSocketModule._methodQueue in:
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libReact.a(RCTWebSocketModule.o)
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libRCTWebSocket.a(RCTWebSocketModule.o)
duplicate symbol _OBJC_IVAR_$_RCTWebSocketModule._sockets in:
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libReact.a(RCTWebSocketModule.o)
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libRCTWebSocket.a(RCTWebSocketModule.o)
duplicate symbol _OBJC_METACLASS_$_RCTWebSocketModule in:
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libReact.a(RCTWebSocketModule.o)
/Users/xuleyuan/Library/Developer/Xcode/DerivedData/SWCRN-ewdfdwvyvsgtsjbhztxszcugwdph/Build/Intermediates/ArchiveIntermediates/SWCRN/BuildProductsPath/Release-iphoneos/libRCTWebSocket.a(RCTWebSocketModule.o)
ld: 441 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
But I can run it with simulator rightly.What I have done:
delete duplicate targets in pod and main project
search compile source but find nothing duplicate
turn off No Common Block of all the targets
In project/Pods I found a Headers folder which contains two folders named public and private with duplicate file .Should I delete one of them?
Finally. I solved this problem!
Just remove all about React in PodFile (Only React) and everything become pretty
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.
I am running Xcode 6.3 and I'm using card.io's iOS SDK 5.2.0.
Here's the error:
duplicate symbol _llvm.cmdline in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOPostalCodeTextFieldDelegate.o)
duplicate symbol _llvm.embedded.module in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOPostalCodeTextFieldDelegate.o)
duplicate symbol _llvm.cmdline in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOConfig.o)
duplicate symbol _llvm.embedded.module in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOConfig.o)
duplicate symbol _llvm.cmdline in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOView.o)
duplicate symbol _llvm.embedded.module in:
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOTableViewCell.o)
/Users/comcubatormica/Downloads/card.io-iOS-SDK-master/CardIO/libCardIO.a(CardIOView.o)
ld: 64 duplicate symbols for architecture x86_64 clang: error: linker
command failed with exit code 1 (use -v to see invocation)
How can I solve this?
You should update Xcode to the latest version, Xcode 7. As stated in card.io's changelog for version 5.2.0:
The library is now built with Xcode 7.0. It has Bitcode enabled which
does significantly increase the static library. However, when an app
is compiled and distributed by the App Store, the app size should not
significantly increase compared to before Bitcode enablement. You must
also use Xcode 7 since previous versions of Xcode are not fully
compatible with Bitcode enabled libraries.
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.
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.