Kingfisher、RealmSwift 库处于上述情况,如果项目中使用的是 Swift UI则需要将最低兼容版本改为iOS 12。由于最近开发项目需要兼容 iOS 11 并且项目中也没有使用到 Swift UI,所以修改 pod file,在 pod install 时将Kingfisher、RealmSwift库的 Swift UI 相关代码删除。
pre_install do |installer|
remove_Kingfisher_swiftui()
remove_RealmSwift_swiftui()
end
def remove_Kingfisher_swiftui
code_file = "./Pods/Kingfisher/Sources/General/KFOptionsSetter.swift"
code_text = File.read(code_file)
code_text.gsub!(/#if canImport(SwiftUI) && canImport(Combine)(.|\n)+#endif/,'')
file = File.new(code_file, 'w+')
file.syswrite(code_text)
file.close()
end
def remove_RealmSwift_swiftui
code_file = "./Pods/RealmSwift/RealmSwift/SwiftUI.swift"
code_text = File.read(code_file)
code_text.gsub!(/#if canImport(SwiftUI) && canImport(Combine)(.|\n)+#else/,'')
code_text = code_text.gsub(/#endif/,'')
file = File.new(code_file, 'w+')
file.syswrite(code_text)
file.close()
end
特别说明:需要先对 Kingfisher 和 RealmSwift ,pod install 移除之后。在重新执行pod install。不然直接添加上述代码会导致报错。