我们的工作项目依赖于一个名为“LibraryAlpha”的动态库。此外,我们的工作项目依赖于一个名为“LibraryBeta”的动态库。而且,恰好是“LibraryBeta”也依赖于“LibraryAlpha”。
我们的项目嵌入了.framework由不同的构建,即嵌入来自单独的.xcodeproj的目标。
在以下情况下,以这种或另一种方式将“LibraryAlpha”的符号和实现(函数和类)以两次方式嵌入到项目包中的可能性是多少:
此外,对于使用SPM生成的.xcodeproj,通常需要将依赖项模块作为项目中的单独目标,这些目标链接并嵌入到main(声明其依赖项的模块)bundle中。所以问题是,如果在我们的项目中我链接并嵌入“LibraryAlpha”而不是项目“LibraryAlpha”中的目标会发生什么,但是那个在“LibraryBeta”项目中为“LibraryAlpha”的文件生成了目标?< / p>
答案 0 :(得分:1)
管理.xcodeprojs&#39;的复杂依赖关系的正确方法在问题的数字中,目标是根本不管理:
为了简化Apple目标项目中依赖项的管理,强烈建议您使用依赖项管理器,例如Carthage或CocoaPods。它们不仅可以使部署成为自动化的天堂,还有助于消除将框架全局安装到托管操作系统中的需要。
这不是Swift Package Manager在解决依赖关系和生成.xcodeproj时所做的事情。 SPM通常会将所有源代码放在一个项目中并为&#34; LibraryAlpha&#34;创建目标。在它。
这样就不会多次包含任何代码,而且一切都在运行时很好地解决了。
这当然没有回答这个问题,问题只是出于问题。但要记住这一点很重要。