web-dev-qa-db-fra.com

Xcode 10 FBSDK 'SDKLoggingBehavior

J'ai mis à jour Xcode 10 et je suis incapable de compiler mon code. Je reçois l'erreur suivante du SDK Facebook (FacebookCore). 

Type d'argument 'SDKLoggingBehavior?' n'est pas conforme au type attendu 'Séquence'

En ligne

return Set (comportements)

J'ai installé le dernier FBSDK en utilisant des cocoapodes.

Comment puis-je résoudre ce problème ou s’agit-il d’attendre un SDK mis à jour de FB?

extension SDKSettings {
      /**
       Current logging behaviors of Facebook SDK.
       The default enabled behavior is `.DeveloperErrors` only.
       */
      public static var enabledLoggingBehaviors: Set<SDKLoggingBehavior> {
        get {
          let behaviors = FBSDKSettings.loggingBehavior().flatMap { object -> SDKLoggingBehavior? in
            if let value = object as? String {
              return SDKLoggingBehavior(sdkStringValue: value)
            }
            return nil
          }
          return Set(behaviors)
        }
        set {
          let behaviors = newValue.map({ $0.sdkStringValue })
          FBSDKSettings.setLoggingBehavior(Set(behaviors))
        }
      }

      /**
       Enable a particular Facebook SDK logging behavior.

       - parameter behavior: The behavior to enable
       */
      public static func enableLoggingBehavior(_ behavior: SDKLoggingBehavior) {
        FBSDKSettings.enableLoggingBehavior(behavior.sdkStringValue)
      }

      /**
       Disable a particular Facebook SDK logging behavior.

       - parameter behavior: The behavior to disable.
       */
      public static func disableLoggingBehavior(_ behavior: SDKLoggingBehavior) {
        FBSDKSettings.disableLoggingBehavior(behavior.sdkStringValue)
      }
    }
}
13
MattBlack

Ceci est corrigé dans la dernière version 0.3.1 (à compter du 8 juin 2018).

Ancienne réponse:

Ceci est corrigé dans le dernier maître, mais pas dans la dernière version de balise ou Cocoapod.

Pour l'utiliser, clonez le code directement à partir de la branche maître dans votre projet à partir du référentiel Swift SDK , ou modifiez votre podfile pour qu'il pointe vers maître:

pod 'FacebookCore', :git => 'https://github.com/facebook/facebook-sdk-Swift', :branch => 'master'

La demande d'extraction qui a résolu ce problème peut être trouvée ici .

13
JAL

Ajout à @ JAL's réponse:

Pour moi, l'installation de pods me donne toujours la version 0.3.0

modifier PodFile avec le dernier numéro de version me donne le dernier sdk

  pod 'FacebookCore','0.5.0'
  pod 'FacebookLogin','0.5.0'
  pod 'FacebookShare','0.5.0'
7
Zaid Mirza
  1. Définir la cible de déploiement sur 11.0 (dans Project & Podfile)
  2. Faire 'mise à jour pod repo'
  3. Mettez à jour votre podfile comme suit:

    pod 'FacebookCore',: git => ' https://github.com/facebook/facebook-sdk-Swift ',: branch => 'master'

    pod 'FacebookLogin',: git => ' https://github.com/facebook/facebook-sdk-Swift ',: branch => 'master'

    pod 'FacebookShare',: git => ' https://github.com/facebook/facebook-sdk-Swift ',: branch => 'master'

3
n.by.n

Dans xcode 10 . Cela fonctionne pour moi.

1. change the iOS version 11.0
2. for Swift 4.2 replace flatMap() to compactMap()
3. delete the derived data of project.
4. clean and run the project on simulator

espère que son aide

1
Abuzar Manzoor

Utilisez ceci à la place

Change flatMap to compactMap
1
MUHAMMAD HASSAN

Il suffit de mettre à jour votre pod et cela fonctionne bien pour moi

  1. Ouvrir le terminal et définir le chemin du projet
  2. 'pod repo update'
  3. Cible de déploiement 11.0 ou supérieure
0
Sahidul Islam