【问题标题】:AdMob: Could not find auto-linked framework 'FBLPromises'AdMob:找不到自动链接的框架“FBLPromises”
【发布时间】:2020-05-18 08:24:38
【问题描述】:

我有一个 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 文件添加到项目中,使其成为混合文件。

我在 Other Linker Flags 中添加了 -ObjC 链接器标志,并且 $(inherited)

教程说要添加“GoogleUtilities.framework”,但我下载的是“GoogleUtilities.xcframework”文件夹。所以我尝试将文件夹添加为组和不添加,我尝试仅在文件夹中添加框架文件。

我试着做一个没有别的东西的新项目。

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

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

【问题讨论】:

  • 我也看到了这个。似乎他们的“手动安装”包中缺少框架,或者 PromisesObjC.xcframework 配置错误。我会联系他们进行调查。

标签: objective-c xcode admob


【解决方案1】:

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

Undefined symbol: _OBJC_CLASS_$_JSContext

在我的情况下,解决方案是将 JavaScriptCore.framework 添加到项目中。

【讨论】:

  • 就我而言,我不需要它。
  • 谢谢。这解决了我的问题。
  • iOS 14 SDK似乎需要JavaScriptCore.framework。
  • 添加 JavaScriptCore.framework 为我解决了这个问题
【解决方案2】:

找出混合项目的问题!

我链接到的项目使用了一个 ObjC 桥接头,所以我只需要在头文件中导入 Firebase:

// ObjC-Bridging-Header.h
#import "Firebase.h"

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

【讨论】:

    【解决方案3】:

    我有同样的错误。我忘记添加以下库:nanopb.xcframeworkPromisesObjC.xcframeworkUserMessagingPlatform.framework - 包含在 GoogleMobileAdsSdkiOS 中。我刚刚添加了错过的图书馆,现在一切正常。

    【讨论】:

      【解决方案4】:

      尝试在 Link 中添加 libz.tbd、 libc++.tbdlibsqlite3.tbdStoreKit 库Binary With Libraries 在 Build Phases 选项卡中。

      【讨论】:

        猜你喜欢
        • 2021-09-14
        • 1970-01-01
        • 2018-09-20
        • 1970-01-01
        • 2016-02-22
        • 2021-08-31
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        相关资源
        最近更新 更多