首先我想说我对这个主题很新,所以我对它的工作方式的一些一般方面有些困惑。 基本上我正在开发一个iOS项目,它有两个目标,一个是我正在开发的应用程序本身,它是一个前端iOS客户端,一个是前开发人员用来定义属于一个后端框架。作为子项目添加的静态库vs作为目标添加的静态库
应用程序本身(我正在处理的客户端)和静态库(后端框架)的文件都在同一个xcode项目包中。 即使我从来没有做过静态库的“设置过程”,任何东西在编译时似乎都能正常工作。
现在的问题是:我正在设置单元测试,因为我想开始开发采用测试驱动开发方法的新功能,所以我一直在努力的事情之一是如果我必须生成或不生成两个独立的测试目标,一个用于iOS应用程序,一个用于静态库(因为它们是两个独立的目标),矿石对静态库和iOS应用程序都使用一个测试目标。 因此,阅读互联网寻找解决方案,我发现,即使苹果建议here,一种常见的方法是将静态库添加为应用程序项目的“子项目”。
我只是问自己为什么和我目前的情况有什么不同(一个项目,目标,其中之一是静态库)。有什么缺点吗?我应该重组整个项目吗?
好吧,我同意你的解耦问题,但我的问题点有点不同,我想知道为什么与一个子项目的解耦,而不是与不同的目标,每个与不同的文件链接的目标。 我想知道为什么一个比另一个更好,因为我发现通过一个子项目添加一些东西有点棘手,它只是一个概念性的东西,例如:“你可能希望将该库添加到另一个项目中,所以它应该生活在一个单独的项目中“或者还有其他与我不是软件包的维护和分发过程相关的问题? –
我认为这两个都是有效的原因。您可能需要将该库添加到另一个项目中,或者您可能希望共享该库而不共享其余代码。 Cocoa项目的原子单元是Xcode项目。出于所有提到的理由,坚持该单位是一个好主意。 – Moshe