簡體   English   中英

如何標記已棄用的導入 Cocoapod 框架

[英]How to mark an imported Cocoapod framework deprecated

在我們的框架之一中,我們使用 SwiftObserver pod。 我們的框架用於我們應用程序的其他幾個框架中。

在將開發目標提升到 iOS 13.0 后,我想將 SwiftObserver 方法的所有用法標記為已棄用,以逐漸更改我們的代碼庫以使用 Combine 的觀察者。

我想從現在開始分叉 SwiftObserver 或鏈接 pod 的本地副本。 然而,只要不是所有代碼都已更改為使用組合,應用程序的部分仍然使用 SwiftObserver 應該能夠使用pod update繼續更新它。

是否有一種更簡單的方法,可能是在 podfile 中,或者通過某種覆蓋,來標記該 pod 的使用已被棄用,而不會破壞其任何功能?

如果您有其他問題或者我可以提供任何代碼示例,請告訴我。

使用 @SoumyaMahunt 提出的 swiftlint 的替代方法可能是設置您自己的私有存儲庫。

以下是您如何能夠實現您想要的:

  1. 創建用於解析 CocoaPod 依賴項的私有規范存儲庫。
  2. SwiftObserver創建一個 podspec 並將其設置為 deprecated -> s.deprecated = true
  3. source 'https://github.com/CocoaPods/Specs.git'上方添加私有規范存儲庫,這對於在搜索全局默認存儲庫之前強制 CocoaPods 解析您的私有存儲庫很重要。

優點

  • 您可以將此私有規范存儲庫用於其他私有 Pod
  • 您可以棄用其他莢,而不必在你的項目破解

缺點

  • 手動確保第三方 pod 更新到最新版本可能很繁瑣(您必須手動為更新版本添加新的 podspecs)。
有用的網址:

https://guides.cocoapods.org/making/private-cocoapods.html

https://guides.cocoapods.org/syntax/podspec.html#deprecated

如果您使用的是swiftlint ,您可以添加自定義規則以生成帶有指示棄用消息的警告。 您還可以調整這些警告的嚴重性以導致編譯錯誤。

要使用SwiftObserver pod 生成警告, SwiftObserver在 swift lint配置文件 ( .swiftlint.yml ) 中創建以下自定義規則:

custom_rules:
  pod_deprecation:
    name: "Deprecated POD use"
    regex: "(SwiftObserver)"
    match_kinds:
      - identifier
    message: "Use of deprecated pods"

對於導入SwiftObserver所有文件,此規則將使用message參數中提供的message發出警告:

示例警告

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM