SDKApplicationDelegate Использование неразрешенного идентификатора - PullRequest
7 голосов
/ 15 мая 2019

У меня установлено два модуля для входа в Facebook

pod 'FacebookCore'
pod 'FacebookLogin'

, чем импортированный FacebookCore в appdelegate.все еще это показывает использование неразрешенной ошибки идентификатора.

unresolved identifier error

Я также реализовал теги в 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
}

Ответы [ 3 ]

9 голосов
/ 15 мая 2019

Это потому, что 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

Также импортируйте эти две капсулы

import FBSDKCoreKit
import FBSDKLoginKit 
1 голос
/ 15 мая 2019

Чтобы иметь возможность войти на 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
0 голосов
/ 23 июля 2019

Подробнее

  • Xcode Version 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
}
...