如何将导入的 Cocoapod 框架标记为已弃用

Mar*_*ner 3 frameworks deprecated ios cocoapods swift

在我们的框架之一中,我们使用 SwiftObserver pod。我们的框架已用于我们应用程序的其他几个框架中。

将开发目标提高到 iOS 13.0 后,我想将 SwiftObserver 方法的所有使用标记为已弃用,以逐步更改我们的代码库以使用合并的观察者。

我正在考虑从现在开始分叉 SwiftObserver 或链接 pod 的本地副本。pod update然而,只要不是所有代码都更改为使用组合,应用程序中仍然使用 SwiftObserver 的部分应该能够继续更新它。

有没有一种更简单的方法,也许在 podfile 中,或者通过某种覆盖,来标记该 pod 的使用已弃用,而不破坏其任何功能?

如果您还有其他问题或者我可以提供任何代码示例,请告诉我。

Laf*_*fen 5

使用 @SoumyaMahunt 提出的 swiftlint 的替代方法可能是设置您自己的私人存储库。

您可以通过以下方式实现您想要的目标:

  1. 创建一个私有规范存储库,用于解决 CocoaPod 依赖项。
  2. 为SwiftObserver创建 podspec并将其设置为已弃用 ->s.deprecated = true
  3. 添加上面的私有规范存储库source 'https://github.com/CocoaPods/Specs.git',这对于强制 CocoaPods 在搜索全局默认存储库之前解析您的私有存储库非常重要。

优点

  • 您可以将此私有规范存储库用于其他私有 Pod
  • 您可以弃用其他 pod,而无需侵入您的项目。

缺点

  • 手动确保第三方 pod 更新到最新版本可能会很麻烦(您必须为更新版本手动添加新的 podspec)。
有用的网址:

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

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