没有这样的模块 'SDWebImage' 使用 pod

No such module 'SDWebImage' using pod

这个问题已经有人问过here但是没有适合我的答案。我已经尝试了下面提到的所有方法。

  1. 使用 .xcworkspace 打开项目
  2. 从项目中删除了所有与 pod 相关的文件,并且再次 pod install 甚至更新了 cocoa pods。
  3. 在其他链接器标志中添加了 $(inherited) 标志。和 -ObjC,所以它可能会从 pod 框架中找到路径。
  4. 添加了用于导入 SDWebImage 的桥接文件。
  5. 深度清理,每次构建并重新启动项目。

我检查了 4 到 5 个小时以来的所有情况,但我没有得到发生这种情况的确切原因。

下面是我的 Pod 文件。

platform :ios, '12.0'
use_frameworks!
target 'ProjectName' do
     pod 'Alamofire'
     pod 'SDWebImage'
end

重新开始

  1. 打开终端
  2. 拖动项目的路径
  3. 创建 Podfile 添加所需的依赖项
  4. pod 安装
  5. 打开工作区
  6. 在包含支持文件的产品中找到 SDWebImage.framework
  7. DO 在 SDWebImage.framework 的 Finder 中显示。复制框架并在任何地方使用它

我多次遇到这种情况,请尝试以下步骤:

-> 尝试清理您的项目

-> 重启你的 Xcode

-> 如果你做一个新的 project 设置而不是再试一次新的 project

  1. 删除你的workspace
  2. 再次使用 pods 从全新安装
  3. 创建新工作区
  4. 尝试rebuild

第三个选项可以工作,因为当 search paths 没有进入您的项目 build settings 时,这种情况会发生很多次

确保您的 podfile 没有框架注释“#”

如果没有,您还需要添加use_frameworks!使用 SDWebImage 作为动态框架:

平台:ios, '8.0' use_frameworks! 吊舱 'SDWebImage'

关闭Xcode。 擦除 import SDWebImage 行。 打开终端 -> cd 你的文件夹 -> pod 更新 -> 关闭终端 -> 打开工作区 现在导入 SDWebImage

SDWebImage 是一个 Swift pod 依赖于 Objective-C,它不同于 Alamofire,需要一个额外的步骤:

  • CocoaPods 1.5.0+(和Xcode 9+):
    添加 :modular_headers => true 到包名称行,如:
# For CocoaPods after 1.5.0
target 'ProjectName' do
  pod 'Alamofire'
  pod 'SDWebImage', :modular_headers => true
end
  • 对于早期版本:
    在 Podfile 中添加或取消注释 use_frameworks!,例如
# For CocoaPods before 1.5.0
target 'ProjectName' do
  use_frameworks!
  pod 'Alamofire'
  pod 'SDWebImage'
end

最后,要应用更改,请

  1. 关闭Xcode
  2. 运行 pod update 在项目文件夹中
  3. 再次打开 Xcode 中的 .xcworkspace 文件。

参考:
SDWebImage Installation Guide
CocoaPods 1.5.0 — Swift Static Libraries

这对我有用:

转到您工作区的编辑方案 > 构建 > select 检查两个构建选项。

确保选中“查找隐式依赖项”。