Xcode13 Kingfisher、RealmSwift库导致SwiftUI错误

239 阅读1分钟

KingfisherRealmSwift 库处于上述情况,如果项目中使用的是 Swift UI则需要将最低兼容版本改为iOS 12。由于最近开发项目需要兼容 iOS 11 并且项目中也没有使用到 Swift UI,所以修改 pod file,在 pod install 时将Kingfisher、RealmSwift库的 Swift UI 相关代码删除。

5272055-99321a07e11d30de.webp

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。不然直接添加上述代码会导致报错。