Flutter集成flutter_facebook_auth在iOS模拟器登录报错com.facebook.sdk.core error 8
解决iOS 16.1模拟器中flutter_facebook_auth登录返回error 8的问题
1. 确认iOS URL Scheme配置正确
Facebook登录必须在Info.plist里配置格式为fb<你的Facebook应用ID>的URL Scheme,比如应用ID是123456,Scheme就是fb123456。
检查ios/Runner/Info.plist是否包含以下配置,替换其中的YOUR_APP_ID为你在Facebook开发者后台的真实应用ID:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fbYOUR_APP_ID</string> </array> </dict> </array>
2. 完善LSApplicationQueriesSchemes配置
除了fbauth2,还要补充其他必要的Scheme,完整配置如下:
<key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-share-api</string> <string>fbauth</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
3. 简化AppDelegate.swift配置(直接复制覆盖)
如果你之前修改AppDelegate导致问题,直接用以下官方推荐的基础代码替换ios/Runner/AppDelegate.swift的内容(无需懂Swift,直接复制即可):
import UIKit import Flutter import FacebookCore @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if ApplicationDelegate.shared.application(app, open: url, options: options) { return true } return super.application(app, open: url, options: options) } }
同时确保Info.plist里的Facebook基础配置正确:
<key>FacebookAppID</key> <string>YOUR_APP_ID</string> <key>FacebookDisplayName</key> <string>YOUR_APP_DISPLAY_NAME</string>
4. 重置模拟器的Facebook登录状态
iOS模拟器可能缓存了旧的登录会话,尝试:
- 打开模拟器内的Facebook应用,退出当前账号后重新用测试账号登录
- 若模拟器没有安装Facebook应用,完成网页登录后重启模拟器和Flutter项目
5. 核对Facebook开发者后台配置
- 确认iOS平台的Bundle ID与Flutter项目的iOS Bundle ID完全一致(可在
ios/Runner.xcodeproj/project.pbxproj中查找PRODUCT_BUNDLE_IDENTIFIER) - 确认Valid OAuth Redirect URIs已添加
fbYOUR_APP_ID://authorize(替换为真实应用ID)
6. 清理缓存后重新构建
缓存可能导致配置不生效,执行以下命令:
flutter clean flutter pub get cd ios && pod install && cd .. flutter run
如果以上步骤都无效,建议用真实iOS设备测试(模拟器偶尔会存在特殊权限问题),同时检查测试账号是否被Facebook限制。
内容的提问来源于stack exchange,提问作者prueba prueba
相关产品推荐
相关产品推荐

