Dev*_*der 12 sdk xcode frameworks ios swift
我正在尝试将我的大型Swift框架拆分为许多模块框架,因此我的应用程序中的每个模块都是独立的,以便在其他应用程序上重用.由于我有一个大型数据,如类和库共享所有模块,我认为创建core_framework包含共享数据并强制应用程序使用此框架,以便能够使用所有其他框架(一个或更多)
我看到了FBSDK的一个例子,它有一个核心框架和其他功能框架:FBSDKCoreKit和FBSDKLoginKit
这对我来说很重要,因为效率的原因,所有其他框架都不包含核心框架.
我的问题是 - 在创建核心框架后,我必须在我的结节框架中做什么,这样它才能识别核心类和功能,但是会编译核心的文件?
谢谢
当您将项目拆分为子模块时,您需要做的很简单,尽管有些细节取决于您如何划分项目。
假设您只处理这个应用程序并将其拆分为模块。最简单的方法是向项目添加更多框架目标。
然后,您需要将它们嵌入到您的应用程序目标中。确保它的一部分的两个“嵌入式二进制文件”和“链接的框架和库”。
现在你有了一个新的框架模块。
这就是您需要设置的全部内容。
我尝试绘制嵌入和链接设置的图表,以便您看到只有应用程序目标包含其他框架:
上面的基本设置适用于所有其他变体:框架(模块)可以依赖于其他框架,但不能随它们一起提供。只有应用程序才能最终解决二进制文件依赖关系。
如果你把你的项目拆分成多个子项目,例如为其他人提取可部署的开源库,那么你必须让“模块 1”知道每个项目中的“核心”,链接到“核心”模块的方式与以上详述。是什么让孤立的 Xcode 项目变得更加复杂:“模块 1”项目如何知道Core.framework
?
git submodule
.上述选项使每个模块项目保持自主。依赖项是模块目录树的一部分。
不那么有序:
Core.framework
一个项目的“产品”组拖到另一个项目的“链接库”列表中,或者Core.framework
文件从 Finder 拖到“Module 1”项目(可选地选择“Copy files if必要”将生成的二进制文件放入“Module 1”目录树中)。上述选项也可以工作,但它们形成了关于文件系统中文件位置的假设。工作空间方法应该有助于减少过时框架二进制文件的问题,因为工作空间可以帮助从项目间依赖关系创建正式的构建依赖关系。就像 app 目标取决于它的框架目标一样,测试目标取决于要首先编译的 app 目标。