ld: warning: directory not found for option '-L/Users/zh_pro/Desktop/礪行公考/上岸/Helper/EaseUI/EMUIKit/3rdparty/DeviceHelper/VoiceConvert/opencore-amrwb'
ld: warning: directory not found for option '-L/Users/zh_pro/Desktop/礪行公考/上岸/Helper/EaseUI/EMUIKit/3rdparty/DeviceHelper/VoiceConvert/opencore-amrnb'
ld: warning: directory not found for option '-L/Users/zh_pro/Desktop/礪行公考/上岸/Helper/HuanxinKF/HelpDeskUI/HDUIKit/3rdparty/DeviceHelper/HDVoiceConvert/opencore-amrwb'
ld: warning: directory not found for option '-L/Users/zh_pro/Desktop/礪行公考/上岸/Helper/HuanxinKF/HelpDeskUI/HDUIKit/3rdparty/DeviceHelper/HDVoiceConvert/opencore-amrnb'
ld: warning: directory not found for option '-F/Users/zh_pro/Desktop/礪行公考/Pods/Hyphenate/iOS_Pods_IMFullSDK_V3.5.2'
ld: warning: directory not found for option '-F/Users/zh_pro/Desktop/礪行公考/上岸/Helper/HuanxinKF'
duplicate symbol OBJC_CLASS_UTDIDAES in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDAES.o)
duplicate symbol OBJC_CLASS_UTDIDBaseUtils in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDBaseUtils.o)
duplicate symbol OBJC_CLASS_AidRequester in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(AidRequester.o)
duplicate symbol OBJC_CLASS_AidManager in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(AidManager.o)
duplicate symbol OBJC_CLASS_UTDIDIntUtils in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDIntUtils.o)
duplicate symbol OBJC_CLASS_UTDIDStringUtils in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDStringUtils.o)
duplicate symbol OBJC_CLASS_UTDIDTypeConvert in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDTypeConvert.o)
duplicate symbol OBJC_CLASS_UTDIDMain in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDMain.o)
duplicate symbol OBJC_CLASS_UTDIDOpenUDID in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDOpenUDID.o)
duplicate symbol OBJC_CLASS_UTDIDHelper in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDHelper.o)
duplicate symbol OBJC_CLASS_AidStorage in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(AidStorage.o)
duplicate symbol OBJC_CLASS_UTDevice in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDevice.o)
duplicate symbol OBJC_IVAR_UTDIDKeychainItemWrapper in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDKeychainItemWrapper.o)
duplicate symbol OBJC_METACLASS_UTDIDKeychainItemWrapper.keychainItemData in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDKeychainItemWrapper.o)
duplicate symbol OBJC_CLASS_UTDIDPersistentConf in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDPersistentConf.o)
duplicate symbol OBJC_CLASS_UTDIDPersistentFile in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDPersistentFile.o)
duplicate symbol OBJC_CLASS_UTDIDGTMBase64 in:
/Users/zh_pro/Desktop/礪行公考/Pods/AlipaySDK-iOS/AlipaySDK.framework/AlipaySDK
/Users/zh_pro/Desktop/礪行公考/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID(UTDIDGTMBase64.o)
ld: 34 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
以上是錯誤信息
解決辦法:
只需要刪除其中一個沖突庫就行了
1· 簡單辦法 直接替換 (網(wǎng)盤連接 一個沒有UTDID.framework 的支付寶SDK
來源:http://www.reibang.com/p/7689b334bbd3
感謝作者
)
2· 利用Mac的 lipo 命令 操作SDK文件 (該方式來源:http://www.reibang.com/p/9c9d5f6af6ff
感謝作者
)
解決方式
mac OS 下使用命令行工具 lipo來的對靜態(tài)庫進行處理括眠。
一、設(shè)置 other linker flags
Bulding Setting里設(shè)置的other linker flags添加的有-Objc薄声,而-Objc得作用就是將加載的靜態(tài)庫中的分類一并加載到程序的可執(zhí)行文件默辨,如果不添加這個參數(shù)缩幸,很有可能會出現(xiàn)selector not recognized問題竞思,主要是找不到分類定義的方法盖喷。
-Objc添加后就會出現(xiàn)多個靜態(tài)庫定義同樣的方法、全局變量等距辆,然后就會出現(xiàn)上面的問題duplicate symbol跨算。
other linker flags解析
-ObjC:加了這個參數(shù)后诸蚕,鏈接器就會把靜態(tài)庫中所有的Objective-C類和分類都加載到最后的可執(zhí)行文件中
-all_load:會讓鏈接器把所有找到的目標文件都加載到可執(zhí)行文件中挫望,但是千萬不要隨便使用這個參數(shù)!假如你使用了不止一個靜態(tài)庫文件桑腮,然后又使用了這個參數(shù)破讨,那么你很有可能會遇到ld: duplicate symbol錯誤奕纫,因為不同的庫文件里面可能會有相同的目標文件匹层,所以建議在遇到-ObjC失效的情況下使用-force_load參數(shù)升筏。
-force_load:所做的事情跟-all_load其實是一樣的,但是-force_load需要指定要進行全部加載的庫文件的路徑铅忿,這樣的話檀训,你就只是完全加載了一個庫文件峻凫,不影響其余庫文件的按需加載
這種方式览露,如果項目中第三方庫很多,比較難管理
二铭腕、修改靜態(tài)庫
1累舷、找到靜態(tài)庫文件 libWintonePlateIDPro.a 源文件被盈,新建一個文件夾專門處理
2、查看包信息 lipo -info libWintonePlateIDPro.a
3袜瞬、創(chuàng)建臨時文件夾身堡,用于存放armv7平臺解壓后的.o文件:mkdir armv7
4贴谎、查看庫中所包含的文件列表:ar -t armv7/libWintonePlateIDPro.a
5、解壓出.o后綴文件:cd armv7 && ar xv libWintonePlateIDPro-armv7.a
6澈魄、找到?jīng)_突的包(RXMLElement.o)痹扇,刪除掉 rm RXMLElement.o
7帘营、重新打包成 .a:cd .. && ar rcs libWintonePlateIDPro-armv7.a armv7/*.o逐哈,可以使用[4]命令查看是否成功
8昂秃、將其他幾個平臺(armv7s, arm64,i386)包逐一做上述[1-7]操作
9肠骆、重新合并為libWintonePlateIDPro的.a文件:lipo -create libWintonePlateIDPro-armv7.a libWintonePlateIDPro-armv7s.a -output libWintonePlateIDPro-new.a