2014-11-21 53 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的(或任何其他工具)錯誤。他們正在發生,因爲你(和你的團隊)濫用了它。