我们都知道,Apple 非常不鼓励创建伞式框架。但苹果也表示可以通过 Xcode 实现。 https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html#//apple_ref/doc/uid/20002254-BAJHGGGA
我在 Xcode 5.1 上通过这些简单的方法实现了创建伞形框架。我们只需要处理一些特殊的配置来将子框架链接到伞形框架。这是我的方法:-
1) 通过此处描述的方法在 Xcode 5.1 上安装真正的Static iOS Framework:- https://github.com/kstenerud/iOS-Universal-Framework。
现在可以使用 Xcode 中的新选项创建“静态 iOS 框架”。
2) 创建Static iOS Framework 并将Target-> Build Settings-> Architectures-> Architectures 设置更改为标准架构。这将创建具有所有标准架构的框架。
3) 调整Target-> Build Phase-> Copy Headers 中的Public Header 文件。我们可以在这里设置头文件的可见性。
4) 将 SubFramework 链接到 Target->Build Phase -> Link Binary With Libraries 中的 UmbrellaFramework。根据我们的使用情况,我们可能还需要链接其他标准框架。
5) 如果需要,我们可能还需要在Target-> Build Phase-> Copy Bundle Resources 中添加Bundle Resources。
6) 我们可能还需要将-ObjC 添加到Target-> Build Settings->Linking-> Other Linker Flag,因为我们可能需要加载一个大型子框架,其中需要加载许多类别或还需要加载其他框架。
7) 使用Target-> Build Phases-> +-> New Copy File Build Phase 添加Copy File。
8) 将其 Destination 更改为 Frameworks 并在那里添加 SubFramework.framework。这会将 SubFramework 复制到 Umbrella Framework。
9) 对于演示,我在 UmbrellaFramework 类中添加了两个演示方法。一种用于演示伞形框架方法调用,一种用于调用 subFramework 方法。
10) 选择 iOS Device 并从 Menu->Product->Archive 存档 UmbrellaFramework 项目。这将创建我们的伞形框架,仅此而已。
11) 现在是时候创建一个新的演示项目,并将其与 UmbrellaFramework 链接。
12) 只需导入 UmbrellaFramework 标头并调用这两个方法。它将在日志窗口中显示 Hello 消息。