_swiftoverride_class_getSuperclass libswiftCompatibility50.a

Unity攤
 Undefined symbols for architecture armv7:
   "_swiftoverride_class_getSuperclass(swift::TargetMetadata<swift::InProcess> const*)", referenced from:
       swift::swift50override_conformsToProtocol(swift::TargetMetadata<swift::InProcess> const*, 
swift::TargetProtocolDescriptor<swift::InProcess> const*, swift::TargetWitnessTable<swift::InProcess> 
const* (*)(swift::TargetMetadata<swift::InProcess> const*, 
swift::TargetProtocolDescriptor<swift::InProcess> const*)) in 
libswiftCompatibility50.a(ProtocolConformance.cpp.o)

環(huán)境: Unity2018.4.36f1 And Xcode12+ 編譯
原因: Swift、OC 混編時需要配置Xcode Project, 使用xxxxx Bridging-Header.h

解決(Xcode配置):

1. Adding a new Swift file and a Brigde header:

  1. File -> New -> File


    image.png
  2. Select Swift File


    image.png
  3. Confirm Create Bridging Header


    image.png

2.Go to Build Settings and set Always Embed Swift Standard Libraries to YES

image.png
結(jié)果

------------------------------------------------分割線------------------------------------------------

解決(Unity打包過程的話):

  1. 將任一空的.swift文件放至Assets/Plugins/iOS目錄下
  2. 打包后處理增加:
    [PostProcessBuild(900)]
    public static void OnPostprocessBuild(BuildTarget target, string path)
    {
        PBXProject project = new PBXProject();
        string pbxProjectPath = PBXProject.GetPBXProjectPath(path);
        pbxProject.SetBuildProperty(targetGuid,"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
     }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容