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 中没有这样的模块