【问题标题】:Adding SwiftLint as a Dependency to a Podspec Project将 SwiftLint 作为依赖项添加到 Podspec 项目
【发布时间】:2018-05-24 09:05:34
【问题描述】:

我对 Cocoapods 还很陌生,我希望这是一个很容易被“RTFM”回答的问题,但 Cocoapods 提供的“M”似乎无法回答我的问题。

我将SwiftLint 应用到我的项目中。

我可以轻松地将其添加到包含其他 pod 的项目中(只需添加“pod 'SwiftLint', '~> 0.24'”),但我很难将其添加到 my Cocoapod project

就像我说的那样,我真的只接触了 Cocoapods 几周,并且知道有办法通过这个兔子洞。这个项目也是从以前的结构转换而来的,所以它不是对 Cocoapods 结构的一对一转换。

问题是我需要能够将 SwiftLint 添加到 BMLTiOSLib 项目中,就像在包含 BMLTiOSLib 的项目中一样。这是我在构建 BMLTiOSLib 时运行的东西。

当我为 SwiftLint 编写一个 podfile 时,我遇到了许多冲突,坦率地说,我对 Cocoapods 的内部工作原理了解得不够多,无法正确诊断它们。

是否有相当基本的指南将 SwiftLint 等内容包含到 Cocoapod 项目中?

【问题讨论】:

    标签: swift cocoapods swiftlint


    【解决方案1】:

    当你在 Cocoapod 项目中时,你需要在 Podspec 中写下你的项目对 SwiftLint 有依赖,而不仅仅是添加它:

    Pod::Spec.new do |spec|
    ...
      spec.dependency 'SwiftLint'
    end
    

    【讨论】:

    • 我做到了。什么都没发生。我想我还需要做点别的事情。由于我不执行“pod update”或“pod install”,因此我没有引入 SwiftLint pod,也无法对其进行测试(真的,我对导出 SwiftLint 没那么感兴趣。我需要它为我自己的工作)。
    • 我怀疑问题是当我设置项目时,我并没有偏离自动生成的样板。我想我需要花一些时间来检查我的项目设置。
    • 哇。只是……哇。看起来我需要从头开始完全重组项目(没什么大不了的),从“忽略 Cocoapods 样板”开始。
    • 这可能发生的原因之一是因为 Cocoapods 旨在成为项目的依赖管理器,而不是 XCode 的某些工具...
    • 是的......它也会发生在其他依赖项上。问题是样板文件有一些与依赖 pod 冲突的 xcconfig。就我而言,最简单的做法是简单地重新启动结构(框架中只有 3 个文件),而不是使用 xcconfigs。似乎大多数人,现在,如果他们用它刮胡子,他们就不会知道奥卡姆剃刀。
    【解决方案2】:

    只是想提一下这个问题已经解决了。问题是样板 xcconfig 文件中编码的标头搜索路径与新的 pod(不仅仅是 SwiftLint)争论。

    解决起来并不难,但我还是决定扔掉样板,只是因为它把一个非常简单的小框架变成了拜占庭式的混乱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      相关资源
      最近更新 更多