我正在创建一个依赖于其他几个第三方框架的 Swift 框架。这两个其他框架都支持 Carthage 和 Cocoapods。
有什么方法可以让我自己的框架支持同时使用 Carhage 和 Cocoapods 安装?或者只是无法实现,我应该选择一个吗?
你绝对可以让你的框架在 CocoaPods 和 Carthage 中都可用。这是我建议允许您的用户使用他们喜欢的任何解决方案的路径。另请注意,设置框架以与 Carthage 一起使用还可以让想要在没有这些解决方案的情况下使用您的库的用户更容易。
在高层次上,对于 CocoaPods,您需要创建一个 podspec,在其中列出您的依赖项。这样 CocoaPods 将管理下载和配置它们,同时解决它们与其他用户的依赖关系。在这里查看更多。
对于 Carthage,您需要为您的项目配置您支持的平台的框架目标,并在您的 Cartfile 中添加您的依赖项。更多关于这里
两者结合其实并不难。在我的框架中,我从包含Example
和Pod
目录的 CocoaPods 模板开始。在示例项目中,我创建了一个新Cocoa Touch Framework
目标,确保该目标是共享的(在 Product - Schemes - Managed Schemes 中)并将我的Pod/Classes
目录内容拖到项目中(未选中Copy items if needed
并Target Membership
仅添加到这个新创建的框架中)。
这应该足够了,迦太基应该找到这个共享方案并使用它。请记住,在使用 Carthage 的框架之前,您必须提交更改并创建新的 git 标签。