在我們的一個框架中,我們使用了 SwiftObserver pod。我們的框架用于我們應用程式的其他幾個框架中。
在將開發目標提升到 iOS 13.0 后,我想將 SwiftObserver 方法的所有用法標記為已棄用,以逐漸更改我們的代碼庫以使用 Combine 的觀察者。
我想從現在開始分叉 SwiftObserver 或鏈接 pod 的本地副本。然而pod update,只要不是所有代碼都已更改為使用組合,應用程式的部分仍然使用 SwiftObserver 應該能夠繼續更新它。
是否有一種更簡單的方法,可能是在 podfile 中,或者通過某種覆寫,來標記該 pod 的使用已被棄用,而不會破壞其任何功能?
如果您有其他問題或者我可以提供任何代碼示例,請告訴我。
uj5u.com熱心網友回復:
使用 @SoumyaMahunt 提出的 swiftlint 的替代方法可能是設定您自己的私有存盤庫。
以下是您如何能夠實作您想要的:
- 創建用于決議 CocoaPod 依賴項的私有規范存盤庫。
- 為SwiftObserver創建一個 podspec并將其設定為已棄用 ->
s.deprecated = true - 添加上面的私有規范存盤庫
source 'https://github.com/CocoaPods/Specs.git',這對于在全域默認存盤庫中搜索之前強制 CocoaPods 決議您的私有存盤庫很重要。
優點
- 您可以將此私有規范存盤庫用于其他私有 Pod
- 您可以棄用其他 pod,而無需在您的專案中進行hack。
缺點
- 手動確保第三方 pod 更新到最新版本可能很繁瑣(您必須手動為更新版本添加新的 podspecs)。
有用的網址:
https://guides.cocoapods.org/making/private-cocoapods.html
https://guides.cocoapods.org/syntax/podspec.html#deprecated
uj5u.com熱心網友回復:
如果您使用的是swiftlint,您可以添加自定義規則以生成帶有指示棄用訊息的警告。您還可以調整這些警告的嚴重性以導致編譯錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316642.html
