SDKApplicationDelegate 使用未解析的标识符
SDKApplicationDelegate Use of unresolved identifier
我安装了两个 pods 用于 facebook 登录
pod 'FacebookCore'
pod 'FacebookLogin'
比在 appdelegate 中导入 FacebookCore。仍然显示使用未解析的标识符错误。
我也在 info.plist
中实现了标签
<array>
<string>fb---------</string>
</array>
<key>FacebookAppID</key>
<string>-----------</string>
<key>FacebookDisplayName</key>
<string>-----------</string>
仍然无法获取 SDKApplicationDelegate。
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
if SDKApplicationDelegate.shared.application(app, open: url, options: options) {
return true
}
return false
}
因为SDKApplicationDelegate
改成了ApplicationDelegate
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
if ApplicationDelegate.shared.application(app, open: url, options: options) {
return true
}
return false
}
还有一件事要做
class AppDelegate: UIResponder, UIApplicationDelegate
同时导入这两个pods
import FBSDKCoreKit
import FBSDKLoginKit
为了能够有facebook登录添加这2个方法
func application(_ app: UIApplication,open url: URL,options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool{
if #available(iOS 9.0, *) {
let sourceApplication: String? = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url,sourceApplication: sourceApplication, annotation: nil)
}
return true
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL?, sourceApplication: sourceApplication, annotation: annotation)
}
import FBSDKCoreKit
import FBSDKLoginKit
详情
- Xcode 版本 10.3 (10G8)
- Swift 5
- FacebookCore (0.7.0)
解决方案
只需将 SDKApplicationDelegate
替换为 ApplicationDelegate
代码
import FacebookCore
//....
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
//....
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
guard let urlScheme = url.scheme else { return false }
if urlScheme.hasPrefix("fb") {
return ApplicationDelegate.shared.application(app, open: url, options: options)
}
return true
}
我安装了两个 pods 用于 facebook 登录
pod 'FacebookCore'
pod 'FacebookLogin'
比在 appdelegate 中导入 FacebookCore。仍然显示使用未解析的标识符错误。
我也在 info.plist
中实现了标签<array>
<string>fb---------</string>
</array>
<key>FacebookAppID</key>
<string>-----------</string>
<key>FacebookDisplayName</key>
<string>-----------</string>
仍然无法获取 SDKApplicationDelegate。
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
if SDKApplicationDelegate.shared.application(app, open: url, options: options) {
return true
}
return false
}
因为SDKApplicationDelegate
改成了ApplicationDelegate
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
if ApplicationDelegate.shared.application(app, open: url, options: options) {
return true
}
return false
}
还有一件事要做
class AppDelegate: UIResponder, UIApplicationDelegate
同时导入这两个pods
import FBSDKCoreKit
import FBSDKLoginKit
为了能够有facebook登录添加这2个方法
func application(_ app: UIApplication,open url: URL,options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool{
if #available(iOS 9.0, *) {
let sourceApplication: String? = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url,sourceApplication: sourceApplication, annotation: nil)
}
return true
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL?, sourceApplication: sourceApplication, annotation: annotation)
}
import FBSDKCoreKit
import FBSDKLoginKit
详情
- Xcode 版本 10.3 (10G8)
- Swift 5
- FacebookCore (0.7.0)
解决方案
只需将 SDKApplicationDelegate
替换为 ApplicationDelegate
代码
import FacebookCore
//....
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
//....
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
guard let urlScheme = url.scheme else { return false }
if urlScheme.hasPrefix("fb") {
return ApplicationDelegate.shared.application(app, open: url, options: options)
}
return true
}