【问题标题】:"No such module 'Alamofire'" won't recognize framework“没有这样的模块'Alamofire'”将无法识别框架
【发布时间】:2015-08-05 14:07:11
【问题描述】:

我正在尝试使用 Swift 将 Alamofire 添加到新的 XCode 项目中。我觉得我已经尝试了一切。

每次我尝试添加

导入 Alamofire

我得到“没有这样的模块”。

我已尝试按照https://github.com/Alamofire/Alamofire 中的说明安装它, 我先尝试手动操作,然后是 Carthage 和 Cocoapods,但结果相同。

我尝试删除 DerivedData 文件夹并重建项目,但没有任何运气。

这是一个完全干净的安装,但它只是无法识别框架。我已经在前 10 次 Google 搜索和 Stackoverflow 上尝试了这些建议 (Cannot install Alamofire in new Xcode Project. "No Such module Alamofire") 以下是我最新手动尝试的一些屏幕截图:

【问题讨论】:

  • Alamofire 是作为一个模块构建的吗?如果没有,您需要将框架的标头包含在桥接头中。
  • 感谢您的回复。我已经通过以下方式下载了它:git submodule add github.com/Alamofire/Alamofire.git to the directory of my project。我还需要做一个桥接头吗?我没有找到任何地方,他们已经提到过,但你可能正在做一些事情......
  • 由于项目本身有 Swift(我不知道它有),你不应该需要一个桥接头。在编写代码或构建代码时是否会发生“没有这样的模块”错误?您是否尝试过删除嵌入和链接二进制选项并重新添加它们?
  • 当我在我的一个文件中使用 import Alamofire 语句后尝试构建项目时会发生这种情况。当我没有尝试导入任何东西时,它可以构建项目。
  • 我遇到了同样的问题 stackoverflow.com/a/40360050/1804274 的解决方案成功解决了我的问题

标签: ios xcode swift alamofire


【解决方案1】:

看起来您正在通过将源文件直接放入项目中来使用该模块。

如果是这种情况,您不必在每个方法的开头使用import Alamofire 标头或使用Alamofire( dot )

只需使用下面的代码省略Alamofire标签。

request(.GET, "https://httpbin.org/get") 

【讨论】:

  • 事实并非如此。我没有尝试直接使用它们,而是按照说明使用它们。我可以通过简单地将框架的所有文件拖到我的项目中来完成整个工作,然后我不需要导入......我想我必须像这样处理它,当将它作为框架导入时不会工作。
【解决方案2】:

我知道这是迟到的答案,但我在使用 Xcode 8 Swift 3.0 时遇到了同样的问题。我关注this Alamofire link 并手动添加了框架。它工作正常。我的一个项目陷入“没有这样的模块”错误,我清理了派生数据(清理派生数据删除了 Alamofire 的源文件。我在我的项目中再次添加了它;))它就像魅力一样工作:)。

遵循的指示

  1. 下载Alamofire
  2. 将 Alamofire 项目拖到您的项目目录中
  3. 检查 alamofire 部署目标是否与您的项目相同
  4. 转到您的项目常规设置,单击“嵌入式二进制文件”部分下的 + 按钮。
  5. 您将看到两个不同的 Alamofire.xcodeproj 文件夹,每个文件夹都有两个不同版本的 Alamofire.framework 嵌套在 Products 文件夹中。从哪个 Products 文件夹中选择并不重要,但选择顶部还是底部 Alamofire.framework 并不重要。
  6. 为 iOS 选择顶部的 Alamofire.framework,为 OS X 选择底部的。
  7. 就是这样! Alamofire.framework 在复制文件构建阶段自动添加为目标依赖项、链接框架和嵌入式框架,这是您在模拟器和设备上构建所需的全部内容。

【讨论】:

  • 这是什么意思?检查 alamofire 部署目标是否与您的项目相同
【解决方案3】:

同样的错误。

我通过以下步骤解决了这个问题:

  1. 点击您的项目(目标)
  2. 点击Build Settings
  3. Search Paths-Framework Search Paths下,添加包含Alamofire.framework的目录路径

希望这能解决您的问题!

【讨论】:

  • 这对我有用。另外,我认为我的框架搜索路径已经正确设置,但是我添加了另一个嵌套在我指定的路径中的框架,所以我不得不将它更改为递归而不是非递归。
【解决方案4】:

我在导入 Alamofire 时遇到了同样的问题。结果发现 Cartfile 不在.xcodeproj 文件位于同一文件夹中。

一旦我将 CartfileCartfile.resolved 文件和 Carthage 文件夹移动到与 .xcodeproj 相同的文件夹中 文件我的项目没有触发任何错误。

确保也将此行添加到 Build Settings > Framework Search Paths

$(PROJECT_DIR)/Carthage/Build/iOS

【讨论】:

    【解决方案5】:

    我能够通过更改我的 Podfile 来解决这个问题。我最初在一个目标中提到了 Alamofire:

    当我将 podfile 更改为以下内容时,问题消失了:

    platform :ios, '8.0'
    use_frameworks!
    
    pod 'Alamofire', '~> 3.0'
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'
    
    target 'xxxxxxx' do
        pod 'GoogleMaps'
    end
    
    target 'xxxxxxxTests' do
        pod 'GoogleMaps'
    end
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 2019-08-04
      • 2018-10-23
      • 2018-01-17
      • 2015-12-04
      • 1970-01-01
      • 2018-10-02
      • 2021-07-08
      相关资源
      最近更新 更多