如何构建一个依赖于另一个框架的iOS框架,而不创建Umbrella框架

12

我试图通过创建一些可重复使用的框架来简化我的开发工作,这些框架包含了我在多个项目中经常重用的功能。

然而,在设置其中一个框架时,我遇到了一个问题,这些类依赖于Firebase框架。阅读了苹果文档后,不建议创建一个伞形框架(嵌入另一个框架),特别是如果您没有对嵌入的框架拥有权(我没有)。

所以问题是:

如何创建一个框架项目,使我能够构建框架而不包括会创建伞形框架的依赖项。我想这就是像Firebase这样的人所做的,因为当您添加他们的框架时,还有其他框架您需要添加到您的项目中。我无法想象如何配置项目才能使您构建框架时没有错误但不包括依赖项。

供参考,我正在使用最新的Xcode,并需要支持iOS 8及以上版本。

非常感谢您对此的任何想法/建议。


你是如何实现的?我想创建一个依赖于其他框架或SDK(比如Facebook SDK)的框架。我应该怎么做,才能只给我的用户提供一个框架? - anoop4real
1个回答

9
为了帮助那些遇到同样问题的人,答案比我想象的要简单得多。
这些框架是动态链接的,只是将框架添加到自己的项目中并不能使其嵌入输出文件,因此也不能生成Umbrella Framework。实际上,你什么都不需要做。任何自己框架所需的框架都可以包含在你的项目中,这样你就可以编译自己的框架,并且还需要包含在任何使用你的框架的项目中。

这个是否在某个时候发生了改变?因为我使用的框架并不是这样的行为,它只是将所有内容捆绑到输出文件中,这恰恰与我想要实现的相反。 - AngryDuck
我现在正在为这个问题苦苦挣扎。我正在使用一个依赖框架,它依赖于 Firebase,而我的项目也需要这个 Firebase。这些依赖关系由 CocoaPods 管理。因此,事件没有按预期方式触发。那么,CocoaPods 是否创建了 umbrella frameworks? - Govind
7年晚了,你有没有找到为什么我们需要明确地向客户端应用程序添加第三方依赖项,比如Firebase的答案?如果这些依赖关系是静态的,它们不应该自动链接到你的框架二进制文件中,而无需明确地发布它们吗? - ImShrey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接