迅速。无法构建Objective-C模块“ Alamofire”


117

使用XCode6并按照T的指示重新安装Alamofire的原始香草子模块。此处的某些内容不合适。我收到的错误是“无法在导入alamofire上构建Objective-C模块“ alamofire”。这是我收到的错误的屏幕截图:

在此处输入图片说明 而我的配置:

在此处输入图片说明



我认为您必须按照此处给出的说明安装alamofire github.com/Alamofire/Alamofire
Saurabh Prajapati

你得到它的工作?它为我工作,并且在另一个“构建并运行”之后停止,并且我得到了相同的错误消息... :(
Georg

2
一位同事也有相同的错误消息,但原因是他仍在使用Xcode 6.1(这是我撰写本文时所处的6.3时代)。说这只是为了记录,其他任何人都应该为同样的事情而挣扎。
villapossu 2015年

Answers:


103

发生这种情况时,只需先分别构建框架即可。在您的情况下:

  • 将方案更改为Alamofire
  • 建立(⌘B
  • 改回您的方案

3
好答案;我忘了更改构建方案来修复此类错误!
tehprofessor,2015年

1
谢谢您的帮助。
提丹

5
如果必须分别构建方案,则可能意味着您没有在应用程序的构建设置中正确地将框架设置为目标依赖项。这样做,您不必手动进行构建。
Charles A.

我投票赞成,因为它可以在Xcode中使用。不幸的是,如果从命令行构建或为Release构建,它将无法正常工作。
Eneko Alonso

这解决了我在使用GoogleApiClient / Drive时遇到的问题。构建将成功,但是一旦对该文件进行了任何更改,Xcode就会抱怨导入。
尼克·亚历山大

53

进入Developer / Xcode / DerivedData并删除框架的文件夹。(或者只是删除DerivedData本身)

如果您在运行的模拟器中构建了自己的应用,则需要在此删除该应用。

然后清理并构建


这也对我有用,但是随后我遇到了多个命令产生,此链接将有所帮助:stackoverflow.com/questions/50718018/…
Bhimbim

32

这总是对我有用:

  1. 退出Xcode
  2. 删除 ~/Library/Developer/Xcode/DerivedData
  3. 更改您的框架方案并构建⌘B
  4. 更改您的应用方案并构建⌘B

22

删除DerivedData文件夹并清理和构建项目对我来说解决了这个问题。


15

请按此顺序尝试以下操作,并且其中一个步骤应该起作用。

  1. Cmd+ B-构建工作空间,可能应该构建我们想要的目标或模块。

  2. Cmd+ K然后Cmd+ B-清理然后构建

  3. Cmd+ Shift+ Option+ KCmd+ B-清理生成文件夹

  4. 戒烟Xcode中,删除导出数据,启动Xcode和Cmd+ Shift+ Option+ K那么Cmd+B

这恰好是从Xcode清除派生数据和其他缓存的最干净的方法。


对于使用iCloud同步的用户(例如,将项目保存在Documents文件夹中,以便可以轻松地将其同步到多个Mac),请检查名称为的文件XXX 2.swift。搜索并删除所有它们,然后运行pod install

12

如果在导入动态框架时遇到此错误,请确保该框架包含在目标的“目标依赖关系”中。

Project > "Target" > Build Phases > Target Dependencies


另外,如果您正在使用在同一工作空间中开发的另一个框架,请确保将项目添加为链接库而不是框架文件,否则该框架将不会作为目标依赖项显示。
大卫Pásztor


6

注释掉导入和使用它的所有代码,构建,运行然后取消注释。它对我有用...


1

我在我的Objective-C / Swift混合项目中解决了这个问题。

在您的Objective-C桥接文件中,添加以下行:

#import <Alamofire/Alamofire.h>


0

任何无法构建的Pod也可能导致此错误。(在我的情况下,使用过时语法的旧容器无法构建)。

您可以尝试pod update将您的Pod更新到最新版本,然后看看情况如何。


对于使用iCloud同步的用户(例如,将项目放在Documents文件夹中,以便可以轻松地将其同步到多个Mac),请检查名称为的文件XXX 2.swift。搜索并删除所有它们,然后运行pod install

0

疯狂修复此问题-仅适用于我的解决方案

创建新方案并添加显示错误的框架。在这种情况下为“ Alamofire”。运行所有这些方案。

编译完所有方案后,您的项目目标也可以正常工作。

这似乎是一个疯狂的修复,但对我来说只是可行的解决方案。


0

如果Alamofire项目的有效体系结构不包含您项目的有效体系结构,则会发生“无法构建Objective-C模块..”错误。

将这些架构i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64添加到Alamofire项目的“ 有效架构 ”中的“ 构建设置”中 ”上。

为两个项目构建相同的目标设备。例如,首先,为iPhone 8(13.2)构建Alamofire项目,然后为同一模拟器构建项目。

如果Alamofire项目构建花费的时间很短,即大约需要0.5秒,则意味着Alamofire项目发生错误,因为所选模拟器的体系结构不在Valid Architectures上

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.