使用 Swift 4/Xcode 10 的 Facebook SDK:参数类型 'SDKLoggingBehavior?' 不符合预期的类型 'Sequence'



我正在重新访问一个旧项目(使用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

这是完整的podfile。

pod install和运行该项目后,它似乎清除了我以前的错误,但我在151return Set(behaviors)行的Pods>Pods>FacebookCore>SDKSettings.swift>enabledLoggingBehaviors中仍然有一个错误

错误为(图片(:

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

我不知道如何处理这个错误,有人知道如何修复这个错误以使Facebook SDK重新工作吗?

提前感谢您的帮助!

SDKSetting.swift 内部

用替换已启用的LoggingBehaviors功能

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))
}
}

希望有帮助。

flatMap替换为compactMap,仅此而已。

最新更新