分发依赖静态框架的动态框架的正确方法是什么?

时间:2017-11-09 18:18:17

标签: ios xcode cocoapods

我正在建立一个封闭的源动态框架。它依赖于第三方闭源静态框架。

我将静态依赖框架链接到我的框架的项目/目标,如this Apple tech note中所述:

enter image description here

同样的Apple技术说明提到:

  

应用目标负责嵌入所有框架,   包括其他框架所依赖的任何框架。

所以我也给了我的客户一份我依赖的框架。但是,在同一技术说明中,Apple(指嵌入静态库/框架)指出:

  

由于这些情况下的二进制文件是静态库,因此应用程序不能   将其嵌入应用包中。

     

...图书馆应保留在" Link Binary with Libraries"   部分。

那很好 - 所以我只是让我的客户端链接静态框架依赖项而不是嵌入它,一切正常。

但是,当我的客户端需要其所使用的其他库的-ObjC链接器标志时,会出现问题。此链接器标志导致我的(objective-c)静态框架依赖项加载其所有类两次,并且客户端在其控制台中的任何位置都看到重复的类日志。

这里的一个可能的解决方案是让客户端识别他们使用的库,这些库需要-ObjC链接器标志,而是为这些库指定force_load标志。但是这个解决方案在客户端使用CocoaPods的情况下也会引起问题,因为CocoaPods会用-ObjC覆盖每个pod install的链接器标志的任何更改。 是否有任何其他解决方案/想法对此问题有任何影响?

P.S。我知道之前的Apple技术说明也提到了:

  

静态框架不支持共享静态库。

但不幸的是,此时我的手与业务限制捆绑在一起,我必须包含这种静态框架依赖。

0 个答案:

没有答案