架构 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】:

由于FBSDKCoreKitFBSDKMarketingKit 的版本不同步,我遇到了同样的问题。

我的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 的未定义符号

Crashlytics错误:架构arm64的未定义符号

XCode - 架构 armv7 arm64 的未定义符号

架构 arm64 的未定义符号:“cv::String::deallocate()”

删除/重新添加文件,现在我得到架构 arm64 的未定义符号:

Unity AR Foundation Xcode 项目中架构 arm64 的未定义符号