什么是分配dynamic框架的依赖于静态框架的正确方法?
我正在构build一个封闭的源dynamic框架。 它依赖于第三方闭源静态框架。
我将静态依赖框架链接到我的框架的项目/目标,如本Apple技术说明中所述 :
同样的苹果技术笔记提到:
应用程序目标负责embedded所有的框架,包括其他框架所依赖的任何框架。
所以我也给我的客户一个我依赖的框架的副本。 然而,在同一个技术笔记中,苹果(指embedded静态库/框架)指出:
由于这些情况下的二进制文件是静态库,因此应用程序无法将其embedded到应用程序包中。
…图书馆应保留在“图书馆链接二进制文件”部分。
这很好 – 所以我只是让我的客户端链接静态框架依赖而不是embedded它,一切工作正常。
但是,当我的客户端需要使用其他库的-ObjC
链接器标志时,会出现问题。 这个链接器标志会导致我的(objective-c)静态框架依赖性加载其所有类,并且客户端在其控制台中的任何地方都会看到重复的类日志。
一个可能的解决scheme是让客户端识别他们使用的需要-ObjC
链接器标志的库,而是为这些库指定force_load
标志。 但是这个解决scheme在使用CocoaPods的客户端的情况下也会导致问题,因为CocoaPods会在每个pod install
再次使用-ObjC覆盖其链接器标志的任何更改。 有没有任何其他解决scheme/想法任何人有这个问题?
PS我知道以前的苹果技术说明也提到:
静态框架不是共享静态库的支持方式。
但是不幸的是,我的双手暂时受到业务限制,我必须包含这种静态框架依赖。