XCode 4.5 - 架构armv7的未定义符号

时间:2012-11-06 12:23:41

标签: ios xcode ios6 unity3d xcode4.5

我是iOS开发的新手,我已经完成了将旧版应用更新到iOS6的任务。该应用程序是使用Unity构建的。在XCode 4.5中,当我尝试在我的设备(iPhone 4)上运行Unity-iPhone应用程序时,出现此错误:

Xcode cannot run using the selected device.
Choose a destination with a supported architecture in order to run on this device.

我去了目标的构建设置,并注意到armv6是为架构和有效架构设置的。我将这两个设置都更改为标准(armv7,armv7s)。当我尝试运行该项目时,我得到了104个编译器错误,如下所示:

Undefined symbols for architecture armv7:
  "ForceInclude_BaseBehaviourManager()", referenced from:
      RegisterManagerClasses() in RegisterClasses.o

因此,这不仅仅是将正确的框架导入项目的问题。这些是其中一个源文件中的所有方法。如何为armv7定义它们?另外,如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

注意:要在设备中运行应用程序,设备IOS版本必须与IOS DEPLOYEMENT TARGET匹配 见下图:

只需使用您的设备IOS更改IOS DEPLOYEMENT TARGET。

选择项目 - >选择信息(标签) - >从下拉框中选择IOS部署目标

enter image description here

另请注意:Xcode 4.5(及更高版本)不支持生成armv6二进制文件。

答案 1 :(得分:0)

我不确定您使用的是什么版本的Unity引擎,但它是否支持armv7?

因为如果没有,并且它只支持armv6,那么你将不得不降级你的Xcode版本,以便使用编译armv6二进制文件的编译器,因为Xcode 4.5不会这样做。

如果您使用的是支持armv7的Unity版本,那么您需要将最低部署版本设置为iOS4.3

答案 2 :(得分:0)

尝试架构armv6和armv7
清理项目
再建一次。