我正在重新访问一个旧项目(使用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
,仅此而已。