Facebook SDK с Swift 4 / Xcode 10: тип аргумента 'SDKLoggingBehavior?' не соответствует ожидаемому типу 'Sequence' - PullRequest
0 голосов
/ 04 ноября 2018

Я возвращаюсь к старому проекту (построенному с Swift 3 и теперь использующему Swift 4), и похоже, что есть некоторые проблемы с Facebook SDK.

Я погуглил начальные проблемы и нашел решение здесь , которое советует добавить в мой файл pod:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['FacebookCore', 'FacebookLogin'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.2'
            end
        end
    end
end

Вот полный подфайл .

После pod install и запуска проекта мне показалось, что моя предыдущая ошибка исчезла, но я все еще получаю одну ошибку в Pods>Pods>FacebookCore>SDKSettings.swift>enabledLoggingBehaviors в строке 151 return Set(behaviors)

Ошибка ( рис. ):

Argument type 'SDKLoggingBehavior?' does not conform to expected type 'Sequence'

Я не уверен, как справиться с этой ошибкой, кто-нибудь знает, как это исправить, чтобы заставить SDK Facebook снова работать?

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 19 ноября 2018

внутри SDKSetting.swift

замените функцию enabledLoggingBehaviors на

public static var enabledLoggingBehaviors: Set<SDKLoggingBehavior> {
    get {
      let behaviors = FBSDKSettings.loggingBehavior().compactMap { 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))
    }
  }

Надеюсь, это поможет.

...