swift - 仅适用于架构 x86_64 模拟器的重复符号
Posted
技术标签:
【中文标题】swift - 仅适用于架构 x86_64 模拟器的重复符号【英文标题】:swift - duplicate symbols for architecture x86_64 Simulator only 【发布时间】:2015-12-16 17:06:15 【问题描述】:我正在开发具有这些 sdk 的应用程序
pod 'PayPal-ios-SDK'
pod 'Stripe'
pod 'GoogleMaps'
pod 'Parse'
pod 'ParseUI'
自从我启动这个应用程序以来,我正在使用实际设备 (iPhone 5) 对其进行测试,没有出现任何错误。但是早些时候当我尝试在模拟器中运行它时,我收到了这个错误。为什么模拟器有错误,但在实际设备上可以?
duplicate symbol _llvm.cmdline in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.embedded.module in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.cmdline in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.embedded.module in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.cmdline in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.embedded.module in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.cmdline in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
duplicate symbol _llvm.embedded.module in:
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
/Users/myname/Desktop/MyApp/Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
ld: 8 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我尝试清理构建文件夹和删除派生数据文件夹。你认为这里的问题是什么?谢谢!
【问题讨论】:
你找到解决方案了吗? 【参考方案1】:即使我遇到了同样的问题,一些搜索也让我找到了这个。
注释 here 说,
当前版本的 PayPal iOS SDK 是使用 Xcode 7.0+ 构建的。
如果您仍在使用 Xcode 6.2,您可能会遇到链接错误 (重复符号)。如果您无法从 Xcode 6.2 升级,请使用 此 SDK 的 2.10.2 版本。
所以我将我使用的版本更改为 2.11.4(我们开始项目时的版本是 2.11.4)并且它可以工作。
【讨论】:
以上是关于swift - 仅适用于架构 x86_64 模拟器的重复符号的主要内容,如果未能解决你的问题,请参考以下文章
Xcode11 Swift5 框架不包含模拟器的头文件,仅适用于 arm64 和 armv7a
如何在 x86_64 Swift 项目中使用 i386 框架
架构 x86_64 的重复符号(实现 FBSDKCoreKilt)Swift
Swift 测试给出错误“架构 x86_64 的未定义符号”