将Google AdMob SDK从7.7.0更新到7.8.0时出现未定义符号错误

9
我已经将我的Google AdMob SDK从 7.7.0 更新到了 7.8.0,但之后我遇到了以下错误:

未定义的符号 - 架构 x86_64:
"_OBJC_CLASS_$_SFSafariViewController",引用自:
objc-class-ref in GoogleMobileAds(flat-x86_64)
ld: 找不到符号(架构 x86_64)clang: 错误: 链接器命令失败,退出代码为 1 (使用 -v 查看调用)
同时,我已经添加了所有这些框架:
AdSupport,
AudioToolbox,
AVFoundation,
CoreGraphics,
CoreMedia,
CoreTelephony,
EventKit,
EventKitUI,
MediaPlayer,
MessageUI,
StoreKit,
SystemConfiguration

在更新这个SDK之前,它一直工作得很好。这是在我的构建阶段中的框架搜索路径。
- $(inherited) - $(PROJECT_DIR)/SDKs - $(PROJECT_DIR) - $(PROJECT_DIR)/SDKs/GoogleMobileAdsSdkiOS-7.8.0
下面是一个链接到图片的HTML标签,展示了已链接的框架: linked framework

包括 SafariServices框架 并检查一次。 - Anbu.Karthik
我尝试了,但是仍然得到相同的错误。 - Riddhi Shah
我已经添加了safariServices.framework。并且我还添加了一个链接二进制文件的截图。 - Riddhi Shah
不,我手动安装了框架。 - Riddhi Shah
显示剩余8条评论
2个回答

17

我已添加:
SafariServices.framework
CoreBluetooth.framework
它可以工作了


它对我有效。有点奇怪。我的许多目标在同一个工作区中,几乎具有相同的项目结构。只有其中一个需要SafariServices和CoreBluetooth,这个使用“FBSDKLoginKit”,其他则不需要。 - derjohng

1
在版本7.8.0中,添加了与CoreBluetooth和SafariServices框架相关的新依赖项,因此这次问题得到了解决。
GoogleMobileAds SDK(也称为AdMob SDK)有许多依赖项,并且它们在连续发布中被添加(有时会被删除)。例如,JavaScriptCore框架是从2016年10月17日发布的版本7.13.0开始的一个新依赖项。如果再次遇到此问题,请检查发布说明日志中的框架依赖项更新情况。

https://firebase.google.com/docs/admob/release-notes


希望那个链接能用,但是谷歌的文档变化太频繁了,现在是404错误。 - quantumpotato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接