架构 arm64 的未定义符号:FBSDK View Hierarchy 引用自:FBSDK Marketing Kit
Posted
技术标签:
【中文标题】架构 arm64 的未定义符号:FBSDK View Hierarchy 引用自:FBSDK Marketing Kit【英文标题】:Undefined symbols for architecture arm64: FBSDK View Hierarchy referenced from: FBSDK Marketing Kit 【发布时间】:2018-10-27 16:14:50 【问题描述】:我正在尝试升级我的 ios 应用以使用 Facebook 4.38.0。我收到如下链接错误:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FBSDKViewHierarchy", referenced from:
objc-class-ref in FBSDKMarketingKit(FBSDKButtonIndexer.o)
"_OBJC_CLASS_$_FBSDKSwizzler", referenced from:
objc-class-ref in FBSDKMarketingKit(FBSDKButtonIndexer.o)
"_OBJC_CLASS_$_FBSDKCodelessIndexer", referenced from:
objc-class-ref in FBSDKMarketingKit(FBSDKButtonIndexer.o)
ld: symbol(s) not found for architecture arm64
我的构建设置如下: 仅构建活动架构:是,有效架构:arm64、armv7、armv7s
在我的构建设置中,框架搜索路径正确指向
/Users/me/Documents/me/iPhone Apps/myProducts/myApp/Pods/FBSDKMarketingKit
marketingKit 所在的位置。此外,我手动将 MarketingKit 框架添加到 Build Phases->Link with binaries(实际上是否存在并不重要)。
是否有人对我可以做些什么来解决这个问题有任何其他想法?
【问题讨论】:
【参考方案1】:由于FBSDKCoreKit
和FBSDKMarketingKit
的版本不同步,我遇到了同样的问题。
我的podfile
看起来像:
pod 'FBSDKCoreKit', '4.34.0'
pod 'FBSDKLoginKit', '4.34.0'
pod 'FBSDKMarketingKit' // by default it uses the latest version (4.8.0 in my case)
所以当我将pod 'FBSDKMarketingKit'
更改为pod 'FBSDKMarketingKit', '4.34.0'
时,问题就解决了。
【讨论】:
以上是关于架构 arm64 的未定义符号:FBSDK View Hierarchy 引用自:FBSDK Marketing Kit的主要内容,如果未能解决你的问题,请参考以下文章
架构 arm64 的未定义符号:“cv::String::deallocate()”