[英]iOS Library/Framework, how to exclude specific classes from the build product?
我正在尝试构建一个iOS库/框架,为简单起见,我们将其公开给使用A
类A
项目。 现在的问题是,类A
依赖于类B
,这并不意味着要在库的生成输出中公开(甚至包括作为符号)。 这会引起问题,因为其中存在另一个具有类C
库,该库也恰好依赖于类B
发生的事情是,如果我尝试在项目中同时包含这两个库,则链接器会抱怨拥有类B
多个定义。
解决此问题的最佳方法是什么? 在构建两个库(或两个库中的至少一个)时,是否可以将B
类设置为弱链接,如果可以,怎么做?
还是应该将类B
提取到其自己的库/框架中,并修改这两个库以引用该类,而不是将类B
包含为源文件?
我认为最好的方法是在项目中建立多个目标 。 最简单的方法是在XCode左侧的文件列表中单击您的项目文件,右键单击中间窗格中“ TARGETS”下的对象,然后选择Duplicate 。 然后,您可以在一个目标中包含A和C,在另一个目标中包含B和C。 您可以分别编译它们,基本上就像拥有两个项目一样,除了它们共享公用文件。 听起来像您想要的吗?
编辑经过深思熟虑,这听起来并不像。 当您编译到一个库,然后将另一个项目链接到它时,您的问题就发生了,对吗?
似乎没有办法在编译的库中包含弱链接的对象。 您最好将它们拆分成单独的库(这是在此页底部所述的情况下发生的事情)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.