在新的Xcode项目中无法安装Alamofire。"没有这样的模块Alamofire"

44
我严格按照说明进行操作,重新安装所有内容,但仍出现错误:“没有这样的 Alamofire 模块”。根据以下方式操作:
“与此同时,您可以将 Alamofire 添加为 git 子模块,将 Alamofire.xcodeproj 文件拖到 Xcode 项目中,并将框架产品添加为应用程序目标的依赖项。”
以下是我的屏幕截图:

2
你需要将该库添加到“链接二进制文件和库”部分。 - EsbenB
1
没错,谢谢。我注意到的是,如果我仍然将其设置为设备,它会给我一个错误,但当我回到模拟器时就可以工作了!然后回到设备,没有错误。祝你好运。 :-) - Edward Potter
谢谢:-) 我刚刚发布了一个答案,提供了稍微更多的信息。祝编码愉快。 - EsbenB
1
使用Cocoapods时出现同样的问题... - User
2
这句话表明了Xcode是一个垃圾开发环境,你需要在问题中发布截图来证明。 - Randy L
http://stackoverflow.com/a/40360050/1804274的指示成功地解决了我的问题。 - Dudling
11个回答

42

请确保您的项目中除 Alamofire.xcodeproj 外没有添加任何来自 Alamofire 的文件。

以下是步骤:

  1. 下载并解压 Alamofire
  2. 将 Alamofire 根目录复制到您项目的任何子文件夹中,例如 Libs。
  3. 将 Alamofire.xcodeproj 拖放到您的 Xcode 项目中
  4. 打开项目设置,Build Phases 面板,展开 Target Dependencies 部分,并添加 Alamofire 作为新依赖项
  5. 打开 General 面板,展开 Embedded Binaries 部分,并添加 Alamofire.framework
  6. import Alamofire // 在您的源文件中
  7. Alamofire.request(.GET, "http://httpbin.org/get") // 使用 Alamofire

6
该项目的README已经更新,并提供了不同的步骤。在这里提供链接,以便人们获得最新版本。 - Matt
2
这些指示(连同README)对新手来说很令人困惑。例如,第2步在finder或xcode中复制文件夹?3.应该把AF.xcodeproj放在哪里?4.Alamofire没有出现,现在怎么办?5、6、7步骤都无法执行,因为其他步骤失败了。 - botbot
1
这里的任何答案都对我没用,我一遍又一遍地检查了这个问题,但我仍然得到“没有这样的模块”的错误。项目已添加到我的项目中,部署目标相同(8.1),在主项目的构建目标下,我已将Alamofire添加到Target Dependencies、Link Binary With Libraries,并添加了Copy Frameworks步骤,将Destination设置为Frameworks并在其中添加了Alamofire.framework。清除了构建目录,删除了派生数据目录,但是当我尝试执行“import Alamofire”时,告诉我没有这样的模块。编辑:我已经尝试重新启动xcode。 - Christian A. Strømmen
2
我仍然无法让任何一个工作。我已经按照多种不同的指示进行了尝试,但我仍然收到“没有这样的模块”的错误提示。在将它们添加到链接二进制区域时,看到框架名称显示为红色是否正常?我的总是显示为红色文本。 - Jason Storey
2
CocoaPods的指令怎么样? - user3246173
显示剩余2条评论

13

你需要将lib添加到'链接二进制文件库'部分中。

目标依赖项 确保在目标(对库进行更改时有用)之前构建 lib,而链接部分确保在链接阶段可用该库。

编辑 上述说明适用于大多数项目。但是,对于此特定项目,alarmofire刚刚更新了所需的过程,详见https://github.com/Alamofire/Alamofire


2
我最近承诺加入Alamofire项目,我们更改了仓库,说明您应该将库添加到“Target Dependencies”部分,而不是“Link with Binary”部分。这里是问题的详细信息。 - Matt

11

我为这个问题奋斗了几天,现在把解决方法分享给大家。我们团队在将 Alamofire 作为子模块引入时遇到了此问题。如果您有自己的方案配置,请确保也要在 Alamofire.xcodeproj 中进行复制。这也可能意味着您需要 fork Alamofire 以保持这些更改同步。


这也发生在我身上了。直到我在Alamofire中与我的应用程序目标具有相同的配置才得以解决。 - Harsha
这是我在另一个框架中遇到的问题,但集成方式类似!天啊,为什么苹果不能像“未找到配置“abcde””这样显示错误消息呢? - LightningStryk

5

这个 Build Phases 的顺序对我很有用。

  • 目标依赖
  • 链接二进制文件库
  • 检查 Pods Manifest.lock
  • 嵌入 Pods 框架
  • 编译源代码

你可以通过拖动来重新排列 Build Phases。


4
在按照NAlexN的步骤后,仍然无法正常工作
我还不得不更改Build Phases的顺序。

原来的顺序是:
- Target Dependencies
- Compile Sources
- Link Binary With Libraries.

之后我修改为:
- Target Dependencies
- Link Binary With Libraries.
- Compile Sources

这样就能够成功构建和运行了!


2

我解决了一个新项目中的“没有这个模块”错误,不是针对Alamofire而是针对另一个名为“RATreeView”的库。

我必须添加:

source 'https://github.com/CocoaPods/Specs.git' 
use_frameworks!
pod "RATreeView", "~> 2.1.0"

到Podfile文件并运行

pod update

关键是添加 use_frameworks! 这可能对某些人有所帮助。

1

我在使用CocoaPods时遇到了类似的错误。

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

  1. 升级到 Ruby 2.2.0+。(https://dev59.com/S3A65IYBdhLWcg3wrQh4#14182172
  2. 升级 CocoaPods 到 0.36.0+(sudo gem install cocoapods --pre
  3. 再次执行 pod install

1
  • 打开你的项目的.workspace文件
  • 在Xcode中打开你的项目的"管理方案"
  • 在方案列表中选择"Alamofire"
  • 清除你的项目

花了半天的时间寻找答案,你帮我解决了问题。非常感谢! - Sunly

0

对我有效的做法:如果你的目标没有包含“Pods.framework”,则将其包含在“链接的框架和库”中。(如果你正在使用CocoaPods并使用框架作为模块,则适用此方法)


0

我曾经遇到过同样的问题,解决方法是使用 Command+B(构建项目),然后错误就消失了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接