2014-11-21 80 views
1

注:我可以看到这里之前这个问题已经被问一次:Right way to extend or customize cocoapods策略定制的CocoaPods

但我不满意的答复。如果不是简单地添加新的方法等,而是希望从根本上改变吊舱的性质,并且没有真正的时间向原始吊舱所有者提交补丁,那么更具体一些会更好他们是否会想要将你的特定于应用程序的更改提供给他们的广义项目)。

现在我正在研究一个大量使用Cocoapods的项目,但由于定制了多个窗格以适应应用程序的需求,因此目前该项目的窗格目录已经或多或少被冻结了。

因为自定义是直接在pods类中完成的,所以需要从新安装/更新中冻结Pods项目,因为似乎无法在不同时完成所有操作的情况下添加或更新单个窗格。当自定义项被更新消除时,自然会导致错误。

我知道在最新版本的Cocoapods中引入了更新单个Pod的功能,但是新版本似乎引入了新问题,其中“分析依赖关系”通常会在单个Pod与自身之间的不正确循环依赖关系出错。

据我所知,没有办法添加一个单一的荚而不同时更新其他荚。

那么,人们在不进入这种情况下定制豆荚的策略是什么?您是否在您的主项目中继承了子类,同时保持了pod目录不变?

在一天结束时,豆荚真的比git子模块好多了吗?

感谢您如何使用它们,同时仍然可以自由定制,而不是在这种情况下结束的建议。

现在我的观点是没有改动就可以使用的pod可以像往常一样导入到Pods项目中,但是大量定制的pod应该被添加到主项目中并且完全与pod添加/更新过程分离。

回答

2

您应该从不直接更改任何Pod。

你应该怎么做,如果你真的必须改变依赖的行为(即,你不能解决任何其他的选择,如组成或甚至类别的问题),你应该创建一个分支,然后使那里改变。

然后,在你的Podfile你应该将链接添加到您的叉:

pod 'MyLib', :git => 'https://github.com/someuser/MyLib.git' 

此外,关你荚应该永远做参考您的应用程序代码。 依赖项应该是独立的

您遇到的所有这些问题都不是CocoaPods的(或任何其他工具)错误。他们正在发生,因为你(和你的团队)滥用了它。