将框架添加到iOS应用

如何使用Git子模块向Xcode项目添加框架。

介绍

在Xcode中构建iOS应用时,我们经常需要从另一个项目中添加代码。 向其他应用程序添加功能的项目通常旨在构建“框架”目标。 框架使您的项目受益于其他人的辛苦工作,因此您不必重新发明相同的轮子。

我们可以下载框架代码文件的副本并将其添加到我们自己的项目中。 但是,我们的副本将立即与原始存储库不同步。 为了继续享受别人的工作带来的好处,我们最好使用使我们的副本与原始副本保持同步的机制添加“子项目”。

添加外部存储库,子项目和框架

通常,要在Xcode中使用外部框架,您需要:

  1. 将某种同步链接添加到外部存储库并下载。
  2. 在Xcode的文件浏览器中,将外部.xcodeproj (Xcode项目)文件作为子项目添加到您自己的项目中。
  3. 框架添加到项目的构建阶段。

实际上,这实际上比听起来简单得多。 例如,步骤2是一次拖放操作,而步骤3涉及单击两个按钮。

在本教程中,我们将详细介绍这些步骤。

如果在任何时候都让您感到困惑,那么我建议您阅读“构建像Lego这样的应用程序”教程,该教程假定您以前没有Xcode或编码知识,并逐步构建应用程序,包括添加框架(在教程中)。 8)。

管理外部存储库的选择

有多种机制可用于将子项目同步到您自己的项目中。 它们包括:

  1. Git的子模块
  2. 可可豆
  3. 迦太基

使用子模块是Git版本控制系统的固有组成部分,并且已经存在了很长时间。 这样一来,您无需安装其他任何东西即可工作,并且相对易于使用。 它已集成到主要的Git流中,因此,例如,当您提交代码时,Git会自动知道要提交子模块代码中的所有更改。 如果您为Git使用GUI,例如SourceTree,它将为您处理子模块。

我听说过,子模块中引用最多的限制是难以管理子模块之间的交叉依赖关系,其中两个子模块可能需要各自加载第三个子模块。

CocoaPods处理交叉依赖关系,并处理上述所有三个步骤。 但是,我认为在没有GUI工具的情况下进行设置需要花费更多时间,并且这阻碍了我对子模块进行更改的能力。

在本教程中,我们将使用一个子模块。

BFWControls框​​架

在本教程中,我们将向Xcode项目添加一个名为BFWControls的框架。 这些步骤与添加任何框架相同。 如果要添加其他框架,可以按照此处的步骤进行操作,但只需将BFWControls引用替换为所需的存储库即可。

BFWControls包含大量功能,可简化Xcode的Interface Builder中的可视化应用程序制作。

创建自己的Xcode项目

如果您已经有一个要在其中添加框架的Xcode项目,那么您都准备开始本教程。

如果您尚未准备好Xcode项目,则可以使用任何iOS模板创建一个新项目。

或者,在添加框架后,跳至在Storyboard教程中嵌入Xib以创建具有自定义视图的基本应用程序,以测试框架是否正常运行。 在本教程的其余部分中,我将使用XibSample项目中的快照。 如果您使用的是不同的Xcode项目,那么您的屏幕当然看起来会略有不同。

准备一个子模块文件夹

我们可以将子模块代码放在Xcode项目中的任何位置,但是让我们创建一个Submodules文件夹以使其明显分开。

X在Xcode中,添加一个名为Submodules的新组。

👉启动Terminal并cd到新的Submodules目录。 只需将Xcode的Submodules文件夹直接拖到“终端”窗口中,并在松开鼠标按钮的同时按住Command键即可做到这一点。

添加子模块

👉仍在终端中,键入(或复制并粘贴):

 git submodule add https://github.com/BareFeetWare/BFWControls.git 

👉点击Return

Terminal在终端中,Git将下载BFWControls“仓库”(存储库)并配置您的主仓库以将其用作子模块。

添加子项目

👉在Finder中的BFWControls文件夹内,新添加的BFWControls文件夹内,找到BFWControls.xcodeproj文件。

from将BFWControls.xcodeproj文件从Finder拖到Xcode的BFWControls.xcodeproj组文件夹中。

添加框架

X单击Xco​​de中的XibSample主项目文件。 选择应用目标和“ General选项卡。 向下滚动到“ Embedded Binaries部分,然后单击+按钮。

code Xcode显示框架列表。 选择第一个BFWControls.framework (注意, 不是 BFWControls Demo.app )。

👉单击Add按钮。

👉建立项目。

而已。 该框架已添加到我们的项目中。

概括

在本教程中,我们在Xcode项目中添加了一个子模块,在Terminal中使用了一个单行命令。 通过将BFWControls.xcodeproj文件从Finder拖到Xcode项目的File Navigator中,我们添加了一个子项目。 最后,我们将框架添加为嵌入式二进制文件。

如果您想知道BFWControls框​​架可以做什么,请遍历Storyboard教程中的NibView ,以快速了解NibView工作原理。 有关功能的更详细介绍,请逐步完成详细的“构建类似Lego的应用程序”教程。