弱链接框架到静态库

时间:2018-12-22 21:10:56

标签: ios cocoapods webrtc static-libraries

问题

我的项目安排如下:

  • 应用
    • 框架
      • 静态库(通用代码)

取决于GoogleWebRTC框架,静态库将开始运行。不幸的是,只能通过WebRTC.org将这种依赖性构建为框架。由于维护原因,他们删除了构建为静态库的功能。

问题

静态库是否有可能弱链接到GoogleWebRTC框架?

  • 应用
    • 框架
      • 静态库(“ CommonCode”)
    • GoogleWebRTC

想到的一些解决方案是:

  • 在静态库中包括WebRTC头文件,并使用自定义模块映射进行构建,以便include "<WebRTC/WebRTC.h>可以正常工作。然后将库嵌入并链接到App目标中
  • 以某种方式将GoogleWebRTC.framework转换为静态库,并将标头和二进制文件嵌入“ CommonCode”静态库中
  • 我...不记得我想到的另一个解决方案。记得的时候会更新。

1 个答案:

答案 0 :(得分:1)

不幸的是,Google决定删除静态目标。

如果有帮助,您可以使用mesibo webrtc框架,该框架是使用修改后的忍者文件构建的静态框架。唯一的缺点是,它不像Google构建那样定期更新(通常会延迟一个月的同步)。

https://github.com/mesibo/mesibowebrtcframework

您所要做的就是从 mesibo版本复制WebRTC.framework/WebRTC,而该版本只是一个静态库,使用lipo -extract提取,然后使用{ {1}}。

以下是您将在Mesibo和Google版本的WebRTC框架中看到的区别

Mesibo版本

lipo -create

和Google版本

$ file WebRTC.framework/WebRTC
WebRTC.framework/WebRTC: Mach-O universal binary with 4 architectures: [i386:current ar 
archive random library] [arm64]
WebRTC.framework/WebRTC (for architecture i386):    current ar archive random library
WebRTC.framework/WebRTC (for architecture armv7):   current ar archive random library
WebRTC.framework/WebRTC (for architecture x86_64):  current ar archive random library
WebRTC.framework/WebRTC (for architecture arm64):   current ar archive random library

如果您需要更多输入,请告诉我!