如何在iOS SDK中创build一个伞架?

我想在iOS SDK中创build一个伞形框架。 我的要求是:

我有一个名为“框架A”的框架,我想创build另一个名为“框架B”的框架。 我想将“框架A”作为子框架添加到“框架B”中,用户只需在其项目中导入“框架B”即可同时使用“框架A”和“框架B”。 换句话说,“框架B”将作为“框架A”的包装。 我通过以下关于框架创作的链接从苹果公司读出:

https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

但它并没有揭示创build一个伞架的方式。

请build议一步一步的方法来创build一个伞架。

我们都知道,创造伞架是受到苹果公司高度的阻挠。 但苹果也表示可以通过Xcode。 https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html#//apple_ref/doc/uid/20002254-BAJHGGGA

我在Xcode 5.1上通过这些简单的方法实现了创build伞架。 我们只需要做一些特殊的configuration来把子框架和伞形框架连接起来。 这是我的做法:

1)从这里描述的方法在Xcode 5.1上安装真正的Static iOS Framework : – https://github.com/kstenerud/iOS-Universal-Framework

现在,可以使用Xcode中的新选项创build“静态iOS框架”。

在这里输入图像描述

2)创build一个Static iOS Framework ,并将Target-> Build Settings-> Architectures-> Architectures设置更改为标准体系结构。 这将创build具有所有标准体系结构的框架。

在这里输入图像描述

3)调整Target-> Build Phase-> Copy Headers公共标题文件。 我们可以在这里设置头文件的可视性。

在这里输入图像描述

4)在Target->Build Phase -> Link Binary With Libraries链接子框架到伞框架。 根据我们的使用情况,我们可能还需要链接其他标准框架。

在这里输入图像描述在这里输入图像描述

5)如果需要的话,我们可能还需要在Target-> Build Phase-> Copy Bundle Resources添加Bundle资源。

在这里输入图像描述

6)我们可能还需要添加-ObjCTarget-> Build Settings->Linking-> Other Linker Flag ,因为我们可能需要加载一个大的子框架,有许多类别加载或需要加载额外的框架。

在这里输入图像描述

7)使用Target-> Build Phases-> +-> New Copy File Build Phase添加Copy File

在这里输入图像描述

8)改变它的目的地为Frameworks并在那里添加SubFramework.framework。 这会将SubFramework复制到Umbrella Framework。

在这里输入图像描述在这里输入图像描述

9)演示我在UmbrellaFramework类中添加了两个演示方法。 一个用来演示伞框架方法调用和一个用于调用子框架方法的框架。

在这里输入图像描述在这里输入图像描述

10)从Menu->Product->Archive存档中selectiOS Device并存档UmbrellaFramework项目。 这将创build我们的伞架,就这些了。

在这里输入图像描述

11)现在是时候创build一个新的演示项目,并将其与UmbrellaFramework链接。

在这里输入图像描述

12)只需导入UmbrellaFramework标题并调用两个方法。 它会在日志窗口中显示Hello消息。

在这里输入图像描述

要创build一个包含子框架的基于Swift的Umbrella Framework,您可以按照下面的分步指南进行操作: Umbrella framework