XCode 9 Swift 4 中没有这样的模块“FBAudienceNetwork”

Posted

技术标签:

【中文标题】XCode 9 Swift 4 中没有这样的模块“FBAudienceNetwork”【英文标题】:No such module 'FBAudienceNetwork' in XCode 9 Swift 4 【发布时间】:2017-10-12 10:22:11 【问题描述】:

我使用 CocoaPods(版本 1.3.1)安装了 FBAudienceNetwork(版本 4.26.0)。我按照https://developers.facebook.com/docs/audience-network/ios发布的官方手册,但Xcode仍然无法识别框架。

为了清楚起见 - 我从 xcworkspace 文件中打开了项目。

我尝试了以下步骤但没有成功:

    手动安装框架,将 ~/Documents/FacebookSDK 路径添加到框架搜索路径 确保使用 Swift 4 编译的 pods 项目 还添加了 FBSDKCoreKit(带螺栓)和 FBSDKShareKit(两个框架都成功导入) 清理项目,删除 DerivedData 并清理 pod 缓存并重新安装 pod

到目前为止没有任何效果。有人遇到过同样的问题并知道原因吗?

【问题讨论】:

发布目标中包含的标题和框架 删除该导入行。清理项目并再次添加该行。然后构建项目。 这在 4.27.0 版本中已修复 【参考方案1】:

已在 v4.27.0

中修复

另一个使用最新 SDK 的解决方案(直到 Facebook 修复此问题)是在您的 Objc 桥接头中添加一行:

#import <FBAudienceNetwork/FBAudienceNetwork.h>

当然,这假设您使用的是桥接头,如果不是,那么您可以添加一个,但这会破坏使用模块的意义。希望 Facebook 能尽快解决这个问题。

【讨论】:

【参考方案2】:

我也遇到了同样的问题。我正在看 Facebook 的错误报告,但它已经关闭,所以我不希望它很快得到修复。 Facebook 建议将“$(SRCROOT)”添加到您的框架搜索路径作为解决方法,但它对我不起作用。

目前,我已在 Podfile 中使用以下行手动将“FBAudienceNetwork”pod 锁定到 4.25.0 版:

pod 'FBAudienceNetwork', '4.25.0'

【讨论】:

【参考方案3】:

试试这个解决方案,它将解决您的问题。 您需要在 FBAudienceNetwork.framework/Modules 文件夹中将 FBAudienceNetwork.modulemap 重命名为 module.modulemap。 v4.26

【讨论】:

这东西写在 fb docs 但你能找到那个模块【参考方案4】:

来自观众网installation guide

祝你好运

【讨论】:

【参考方案5】:

在这篇文章之后: https://developers.facebook.com/bugs/185968218614056/ 并且在降级到 4.23 版后(由 MoPub 中介支持,如此处所述:https://github.com/mopub/mopub-ios-sdk/wiki/Integrating-Native-Third-Party-Ad-Networks)集成正在工作(通过手动添加框架)。

这是 4.26 版本中的一个错误,所以任何鼓励同样问题的人,你必须等待 Facebook 修复这个错误。我建议订阅并关注我发布的讨论。

【讨论】:

【参考方案6】:

当我只使用“静态”文件夹中的框架时,它可以工作。

【讨论】:

以上是关于XCode 9 Swift 4 中没有这样的模块“FBAudienceNetwork”的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 9:使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入

Xcode 8 和 Swift 3 中没有这样的模块 Alamofire

CocoaPods 在 Xcode 7 Swift 2.2 中没有这样的模块

Socket.IO 错误:zlib 没有这样的模块(Swift 3,Xcode 8.3)

Xcode 没有这样的模块

Audiokit 4.9.5 在 xcode 11.4 + swift 5.2 中崩溃,没有有用的错误消息