第三方ObjC框架依赖于Swift App中的动态Cocoa框架

时间:2014-07-17 07:42:26

标签: ios objective-c swift

我需要在基于Swift的应用程序中使用Ubertesters框架。 Ubertester框架也依赖于少数Cocoa框架。在ObjC环境中的Normaly,您必须在链接二进制文件中添加一些框架,但不再在Swift中添加。然而,当我将Ubertester SDK用于Swift时,Ubertester SDK所需的Cocoa框架依赖关系并不是动态加载的。

这就是我所做的:

  1. 我将Ubertester框架添加到工作区
  2. 我创建了umbrela标头并且#import是UbertesterSDK(我可以很好地看到Ubertester类到Swift代码中)。
  3. 我没有添加Ubertester向Link Binaries提出的Cocoa依赖框架。
  4. 尝试在设备或模拟器上运行它失败:

        ld: warning: relocatable dylibs (e.g. embedded frameworks) 
    
         are only supported on iOS 8.0 and later (@rpath/libswift_stdlib_core.dylib)
    
         Undefined symbols for architecture i386:
    
      "_AudioServicesPlaySystemSound", referenced from:
    
          -[Ubertesters playSystemSound:] in UbertestersSDK
    
      "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
    
          objc-class-ref in UbertestersSDK ...
    

    知道如何调试此错误吗?

    谢谢

1 个答案:

答案 0 :(得分:1)

看起来您在模拟器上运行的是早于iOS 8的东西,并且您的库不支持体系结构和操作系统的组合。

尝试将项目目标上的部署目标更改为iOS 8,然后查看是否启动了该目标。在此期间,我会检查您是否拥有最新版本的SDK。