【问题标题】:Combine Cocoapods and Carthage结合 Cocoapods 和 Carthage
【发布时间】:2015-05-27 20:46:23
【问题描述】:

我正在创建一个依赖于其他几个第三方框架的 Swift 框架。这两个其他框架都支持 Carthage 和 Cocoapods。

有什么方法可以让我自己的框架支持同时使用 Carhage 和 Cocoapods 安装?或者只是无法实现,我应该只选择一个?

【问题讨论】:

    标签: ios xcode swift cocoapods carthage


    【解决方案1】:

    两者结合其实并不难。在我的框架中,我从包含 ExamplePod 目录的 CocoaPods 模板开始。在示例项目中,我创建了一个新的 Cocoa Touch Framework 目标,确保该目标是共享的(在产品 - 方案 - 托管方案中)并将我的 Pod/Classes 目录的内容拖到项目中(未选中 Copy items if needed 并添加了@987654326 @ 仅适用于这个新创建的框架)。

    这就够了,Carthage 应该找到这个共享方案并使用它。请记住,在使用 Carthage 的框架之前,您必须提交更改并创建新的 git 标签。

    【讨论】:

      【解决方案2】:

      您绝对可以使您的框架同时适用于 CocoaPods 和 Carthage。这是我建议允许您的用户使用他们喜欢的任何解决方案的路径。另请注意,将框架设置为与 Carthage 一起使用还可以让那些想要在没有这些解决方案的情况下使用您的库的用户更轻松。

      在高层次上,对于 CocoaPods,您需要创建一个 podspec 来列出您的依赖项。这样 CocoaPods 将管理下载和配置它们,同时解决它们与其他用户的依赖关系。查看更多here

      对于 Carthage,您需要为您的项目配置您支持的平台的框架目标,并在您的 Cartfile 中添加您的依赖项。更多关于 here

      【讨论】:

      • 感谢您的回答。那我一定是对我的 Cocoapods 文件做错了什么。例如,我使用s.dependency 'BrightFutures', '~> 1.0' 列出了我的依赖项。运行 pod spec lint 时失败:Unable to satisfy the following requirements: - BrightFutures (~> 1.0) required by Spine (0.1)
      • 在我看来这是因为 BrightFutures 没有匹配的版本。您可能必须将版本显式设置为当前发布的 beta 版本。 (见here
      • 谢谢!我以为我已经尝试过了,但显然我没有:)。
      猜你喜欢
      • 2018-10-06
      • 2016-11-09
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多