1.'@objc' instance method in extension of subclass of 'xxx' requires iOS 13.0.0
需要把實現從擴展移到主類實現。iOS13一下擴展不支持@objc
2.using bridging headers with framework targets is unsupported 報錯
這個錯誤通常指的是在一個框架目標中使用橋接頭是不支持的。在Xcode 11以后的版本中,使用模塊化編程的方式進行開發成為了推薦的方式,而橋接頭只能在非模塊化的代碼中使用。
如果你需要在框架中使用Objective-C代碼,可以考慮使用模塊接口(module interface)代替橋接頭文件。模塊接口文件是一個描述框架接口的文件,它會自動將Objective-C代碼導入到Swift中。
你可以使用以下步驟來替換橋接頭文件:
創建一個名為module.modulemap的文件,并將其添加到框架的根目錄中。
在module.modulemap文件中添加以下內容:
frameworkmodule {? umbrella header"<FrameworkName>.h"export*module* {export* }}
其中,<FrameworkName>是框架的名稱,將其替換為你的框架名稱。
將Objective-C頭文件添加到umbrella header指令所指定的頭文件中。例如,如果你的框架名稱是MyFramework,則需要將所有Objective-C頭文件添加到MyFramework.h文件中。
在Swift代碼中導入你的框架。
importMyFramework
通過使用模塊接口來代替橋接頭文件,你可以在Swift中更方便地使用Objective-C代碼,而無需擔心橋接頭文件的限制。