Swift4集成Facebook登录报错:找不到FacebookCore模块及LoginButton未解析
解决Facebook Swift登录集成的两个常见问题
兄弟,我之前集成Facebook登录的时候也踩过一模一样的这俩坑,给你整理了亲测有效的解决步骤:
一、解决「No such module 'FacebookCore'」错误
这个问题90%都是因为没有正确使用CocoaPods生成的工作空间,或者Pod安装不完整,按下面的步骤排查:
- 必须用
.xcworkspace打开项目:执行pod install之后,CocoaPods会生成一个后缀为.xcworkspace的文件,一定要用这个文件打开,而不是原来的.xcodeproj——直接打开xcodeproj的话,Xcode找不到Pods里的模块。 - 重新安装Pod并清理缓存:
- 终端cd到你的项目根目录,执行
pod deintegrate彻底卸载现有Pod,然后pod install重新安装。 - 在Xcode里按
Command+Shift+K清理项目,再按Command+Option+Shift+K清理Build文件夹,然后重启Xcode。
- 终端cd到你的项目根目录,执行
- 检查Podfile配置:确保Podfile开头的iOS版本符合Facebook的要求(目前至少iOS 13.0),并且target名称和你的项目target完全一致,比如:
platform :ios, '13.0' target 'YourAppName' do use_frameworks! pod 'FacebookCore' pod 'FacebookLogin' pod 'FacebookShare' end
二、解决「Use of unresolved identifier 'LoginButton'」错误
这个问题是因为你找错了模块!LoginButton是属于FacebookLogin模块的,不是FacebookCore,按下面的方法修正:
- 在使用LoginButton的文件中导入正确的模块:比如你的ViewController里,要导入
FacebookLogin,而不是只导入FacebookCore,示例代码如下:import UIKit import FacebookLogin // 必须导入这个! class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let loginButton = LoginButton(readPermissions: [.publicProfile]) loginButton.center = view.center view.addSubview(loginButton) } } - 检查拼写和大小写:Swift是大小写敏感的,
LoginButton首字母必须大写,如果写成小写的loginButton就会报错。
额外排查点
如果上面的步骤都没用,可以试试:
- 执行
pod update FacebookCore FacebookLogin FacebookShare更新到最新版本的Pod。 - 检查项目Build Settings中的「Framework Search Paths」,确保包含
$(inherited)和Pods的相关路径(正常pod install会自动配置,如果你手动改过可能需要重置)。
内容的提问来源于stack exchange,提问作者Jhony
相关产品推荐
相关产品推荐

