主角:LPDNetworkingKitgit
原由:LPDNetworkingKit 自己是咱們組在 GitHub 上開源的一個庫,而後,哎嘿,不知道啥緣由,咱們內網 GitLab 上還有一個私有的 LPDNetworkingKit,這個版本的代碼還跟開源的不同,摻雜了業務代碼。沒辦法,手頭正在編譯的 BKit 庫的發版須要依賴這個庫,因而,開始考慮怎麼處理。github
通過:起先,爲了防止跟開源的辣個版本衝突,我打算改個名,而後改完發版,搞定。而後修改依賴,跑起來,編譯失敗。一看,臥槽,BKit 不只直接依賴了 LPDNetworkingKit,還依賴了一個 LPDMvvmKit,這個庫是開源的,而且也依賴了開源的 LPDNetworkingKit。哭了,照着更名發私有的思路繼續下去,估計後面不知道會起多少連鎖反應...果斷想其它辦法。而後,去查了一圈 CocoaPods 私有庫和公開庫重名的問題,發現不支持指定依賴來源,可是能夠經過 tag 區分,因而乎開源的版本號是 0.3.0 這種,私有庫咱直接發了一個 3.2.1 的版本,而後在 BKit 裏指定到最新的版本,也就變成了指向咱們私有的版本,哎嘿嘿,搞定。post
PS:唔,後續發現,pod lib lint
和 pod repo push
時 --sources
指定的 source 的前後順序會影響重名庫的引用,若是多個 source 有多個重名庫的話,取前面一個 source 的,不知道是否是玄學。code
結論:目前只是權宜之計,私有的 LPDNetworkingKit 後面會被清理掉,否則總有衝突的一天。get
若有任何知識產權、版權問題或理論錯誤,還請指正。
https://juejin.im/post/5a4b53546fb9a0451e402cbc
轉載請註明原做者及以上信息。it