繁体   English   中英

iOS库/框架,如何从构建产品中排除特定类?

[英]iOS Library/Framework, how to exclude specific classes from the build product?

我正在尝试构建一个iOS库/框架,为简单起见,我们将其公开给使用AA项目。 现在的问题是,类A依赖于类B ,这并不意味着要在库的生成输出中公开(甚至包括作为符号)。 这会引起问题,因为其中存在另一个具有类C库,该库也恰好依赖于类B

发生的事情是,如果我尝试在项目中同时包含这两个库,则链接器会抱怨拥有类B多个定义。

解决此问题的最佳方法是什么? 在构建两个库(或两个库中的至少一个)时,是否可以将B类设置为弱链接,如果可以,怎么做?

还是应该将类B提取到其自己的库/框架中,并修改这两个库以引用该类,而不是将类B包含为源文件?

我认为最好的方法是在项目中建立多个目标 最简单的方法是在XCode左侧的文件列表中单击您的项目文件,右键单击中间窗格中“ TARGETS”下的对象,然后选择Duplicate 然后,您可以在一个目标中包含A和C,在另一个目标中包含B和C。 您可以分别编译它们,基本上就像拥有两个项目一样,除了它们共享公用文件。 听起来像您想要的吗?

编辑经过深思熟虑,这听起来并不像。 当您编译到一个库,然后将另一个项目链接到它时,您的问题就发生了,对吗?

似乎没有办法在编译的库中包含弱链接的对象。 您最好将它们拆分成单独的库(这是在此页底部所述的情况下发生的事情)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM