文件中缺少所需的i386架构

12

在添加了MapKit和CoreLocation框架后,我在构建我的应用程序时遇到了问题。它们都是4.3框架,而该应用程序以前使用UIKit、CoreGraphics和Foundation很好地工作,只是在这两个框架上出现了问题。我不确定所需的体系结构是什么,在代码中没有任何错误。欢迎任何帮助!

ld: warning: ignoring file /Users/F3d3r3r/Desktop/testNav4_3/MapKit.framework/MapKit, missing required architecture i386 in file

ld: warning: ignoring file /Users/F3d3r3r/Desktop/testNav4_3/CoreLocation.framework/CoreLocation, missing required architecture i386 in file

Undefined symbols for architecture i386:
  "_CLLocationCoordinate2DMake", referenced from:
       -[Layer2 tableView:cellForRowAtIndexPath:] in Layer2.o
  "_OBJC_CLASS_$_MKMapView", referenced from:
       objc-class-ref in Layer2.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

1
可能是重复的问题:构建错误-文件中缺少所需的体系结构i386 - Carl Norum
1
这比我的建议更有用。 - Rayfleck
4个回答

45

添加CoreLocation框架,该框架包括CLLocation和MapKit。


2
我已经添加了CoreLocation和MapKit。 - F3d3r3r
@F3d3r3r 我还得添加MapKit :) - ademar111190

7

我曾经遇到了同样的问题,经过长时间的努力,我找到了解决方法。

我的解决方法如下:

  1. 进入“Build Settings”
  2. 搜索“framework search path”
  3. 删除预设的路径

现在它已经完美地工作了,希望能对一些人有所帮助。


1
什么是“预填充路径”? - shim
@shim 请尝试使用 $(PROJECT_DIR)/<项目名称文件夹路径> 来引用框架。 - Jeremie D

1

如果您从Finder复制框架到项目中,请注意。确保在将其添加到项目时未选中“复制文件...”选项。

检查项目的根目录,如果您已经复制了它,请删除并尝试重新添加。

建议从Xcode的“Build Phases”、“Link Binary With Libraries”部分进行添加。


LTTP,但这应该是正确的答案。很可能您复制了包含库的项目或其中一部分,并且这会使xCode出现问题。对于其他人来说,我建议首先尝试这个方法。 - Jeremie D

0

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