AdMob:找不到自动链接的框架“FBLPromises”

Cur*_*tis 4 xcode objective-c admob

我有一个 Objective C 项目,我想向其中添加 AdMob。一直在关注https://developers.google.com/admob/ios/quick-start#objective-c

我收到链接器错误 ld: 警告:找不到自动链接框架 'FBLPromises' 架构 arm64 的未定义符号:“_OBJC_CLASS_$_UIScene”

我正在手动添加框架。我把他们拖了进去。

本教程没有说明有关 promise 框架的任何内容,但在他们的下载中提供。如果我不添加它,我会收到一个链接器错误,指出缺少一个函数。

所有框架都在项目中,并在 Link With Binary Libraries 列表中。

我尝试删除它们并重新添加它们,然后退出 Xcode 并清理构建。

我尝试添加框架搜索路径 $(inherited) 和 $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) 以及它们所在的文件夹以及递归 $(PROJECT_DIR)/Frameworks 以及它们所有的确切路径。

我尝试向项目添加一个新的 swift 文件,使其成为混合文件。

我将 -ObjC 链接器标志添加到其他链接器标志,以及 $(inherited)

该教程说要添加“GoogleUtilities.framework”但我下载的内容有“GoogleUtilities.xcframework”文件夹。所以我尝试将文件夹作为一个组添加,也尝试添加一个组,我尝试只在文件夹中添加框架文件。

我尝试制作一个没有别的东西的新项目。

任何人都可以让 AdMob 通过手动添加框架来处理 Objective C 项目吗?

我已同意 Apple 的最新条款并拥有付费开发者帐户。

dma*_*zke 12

我在 Swift 项目中遇到了类似的错误。

Undefined symbol: _OBJC_CLASS_$_JSContext
Run Code Online (Sandbox Code Playgroud)

就我而言,解决方案是将 JavaScriptCore.framework 添加到项目中。


Mar*_*ark 3

解决了混合项目的问题!

我链接的项目使用了 ObjC 桥接头,因此我只需在头文件中导入 Firebase:

// ObjC-Bridging-Header.h
#import "Firebase.h"
Run Code Online (Sandbox Code Playgroud)

不确定这是否与纯 ObjC 项目相关,但您也许可以添加一个虚拟 Swift 文件以使其成为混合项目并使用桥接标头。