Cocoapods-是否可以定制第三方iOS库?

Cocoapods-是否可以定制第三方iOS库?,ios,cocoapods,Ios,Cocoapods,我正在编写一个使用一系列第三方iOS库(例如TWStatus、BSKeyChain)的项目,其中一些我已经修改过(高达10%的自定义代码),但不适合最初的GitHub项目 我考虑了库作者将来的更新,今天看到了它,它看起来像Bundle或Vundle(用于Vim)一样是一个很好的依赖关系管理器 我很好奇,我的自定义代码是否可能与使用CocoaPods的库作者将来所做的更改共存???所以,说得很清楚 您已对依赖项进行了更改 您还希望使这些依赖项保持最新 -- 在我看来,这将是一种痛苦。对于每个更新,

我正在编写一个使用一系列第三方iOS库(例如TWStatus、BSKeyChain)的项目,其中一些我已经修改过(高达10%的自定义代码),但不适合最初的GitHub项目

我考虑了库作者将来的更新,今天看到了它,它看起来像Bundle或Vundle(用于Vim)一样是一个很好的依赖关系管理器

我很好奇,我的自定义代码是否可能与使用CocoaPods的库作者将来所做的更改共存???

所以,说得很清楚

您已对依赖项进行了更改 您还希望使这些依赖项保持最新

--

在我看来,这将是一种痛苦。对于每个更新,对于每个pod/依赖项,您需要将新内容合并到您自己的版本中

然而,如果你做了改变。。。你真的需要吗?考虑使用适配器或FAXAADE模式在它们周围写一个包装器,然后您可以根据需要更新它们(假设它们的接口没有改变)。p>
只是一些想法

默认情况下,CoocaPods会将一个库作为源代码,以及构建该库的说明。(对于封闭来源的LIB有一些例外情况)。因此,这使得在项目上下文中调试问题和测试更改变得很容易

决定更改后,您应执行以下操作之一:

  • 将更改提交回主库。您可以轻松地升级到新版本,其中包括更广泛社区提供的所有测试,这将使您受益匪浅。实现这一点的最简单方法是分叉库,应用更改,并发送一个pull请求

  • 如果您所做的更改对库的其他用户没有真正的好处,那么您可以直接使用fork库,而无需将更改提交回master。如果许可证允许,您可以维护一个私有fork,并且仍然可以从CocoaPods解析它。为此:

Podfile:

#As long as the pod-spec is published at the root of the git repo, this works. 
pod 'MyFantasticLib', :git => 'https://github.com/dogue/Doguetastic.git'
#. . and you can use this lib while you're waiting for your pull req. to be approved.
<>你也可以考虑设置一个.
第一种选择通常是最好的

谢谢你的解释@Jasper Blues。我最终得到了一个混合——一些图书馆是用CoCoapod管理的。对于那些需要定制的,我会提交一个拉取请求,如果拉取被拒绝,我会将其作为我的子回购:D+1表示建议门面模式。我在考虑要么做那个,要么做班级扩展。