创建一个依赖于另一个框架的框架

12
我希望使用Swift中的Cocoa Touch框架项目创建一个框架。但是,我正在另一个名为RNCryptor的基于Objective-C的框架之上构建此框架。我看过各种关于如何在Xcode中创建框架的教程,但没有一篇涵盖了具有自己依赖项的框架。
我尝试创建一个框架项目,然后使用CocoaPods来管理其依赖项。但是,出现了错误:“检查依赖项”无法运行命令...'
因此,问题是:是否可以在Xcode中创建一个基于另一个框架的框架?如果可以,如何操作?
1个回答

20

框架不应直接嵌入其他框架。如果导入项目或任何其他框架也包含该框架,则会导致冲突。相反,您需要告诉您的用户他们还需要包含您的依赖项。CocoaPods将自动完成此操作,因此应该让它处理。(如果您在使用CocoaPods时遇到困难,请提出问题并解决它。CocoaPods的整个目的是管理这些事情。)

请注意,我今天(或明天,但我真的希望是今天)将发布RNCryptor的Swift版本beta版。此版本与ObjC桥接,将成为未来首选版本。(当然,ObjC版本将继续可用于不能或不想包含Swift的项目。)


因为您的等级很高,所以我相信您在说“框架不应直接嵌入其他框架”时,由于冲突问题,您知道自己在谈论什么。但是,这方面有没有任何文档资料? - Just a coder
1
这是一个好问题。据我所知,除了在伞状框架中告诉你不要做(https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html)外,苹果在文档中对嵌套框架保持沉默。 苹果文档从未真正讨论第三方代码。他们总是假设只有你和苹果。这些建议来自多年修复尝试嵌套框架然后发生冲突的项目的经验。(Mac早在iOS之前就拥有自定义框架。)另请参见https://dev59.com/ams05IYBdhLWcg3wPfcR - Rob Napier
如果我们不使用CocoaPods,那么如果我将依赖项放在框架头文件中,编译我的框架的必要部分是什么? - Lucas Huang
@LucasHuang 应该将依赖项放在它们自己的框架中,应用程序应链接您的框架和依赖框架。 - Rob Napier
我只是想知道如何在不使用CocoaPods的情况下实现。同时,这是一个闭源框架吗?有任何参考资料吗? - Lucas Huang
显示剩余4条评论

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