选择支持架构的目标设备以在此设备上运行 - XCode 4.5(4G182)+ iPhone 5 iOS6

29
我昨晚使用XCode 4.5为iOS6创建了一个全新的应用程序。我可以在我的运行iOS6的iPhone 4上进行开发。
今天,我拿到了一部运行iOS6的新iPhone 5,并更新了具有新设备UUID的证书。但当我尝试在它上面运行我的应用程序时,出现了以下错误:
“XCode无法使用所选设备运行。请选择支持此设备的架构作为目标。”

我已经启用了设备的开发模式。在设置中同时包含了armv7和armv7s。
我已经添加了Facebook 3.0 SDK的源代码以及链接标志“-lsqlite3.0”。我猜问题肯定与此有关,但无法确定出错原因。
有任何解决方法吗?
附注:当在模拟器上运行应用程序时,也会出现此问题。不知道昨晚和今天之间我的项目或XCode发生了什么变化,除了我有一个新设备和新证书。
所选目标不支持所选软件构建的架构。请切换到支持该架构的目标以运行所选软件。

不要直接添加编译器标志。尝试以与添加框架相同的方式添加sqlite库。所有动态库都在那里,构建系统将生成正确的链接(模拟器的LP64,A6的armv7s和A5的armv7)。 - Jason Coco
17个回答

43

你还需要在

项目 --> 构建设置 --> 构建选项

enter image description here

中选择编译器LLVM。


25

我在使用XCode 5.0运行一个旧项目时遇到了相同的问题,我的解决方案如下:

您需要执行以下步骤以解决此问题:

1. 设置有效架构: armv7、armv7s。

2.项目--->构建设置--->构建选项中将编译器设置为LLVM。请参见下面附加的图像

3. 正确设置基本和部署sdk

这是我的解决方案。乐意帮助。


10
你需要在你的目标(Target)的构建设置(Build Settings)中添加armv7s到你的有效架构(Valid Architectures)中。

Changing Valid Architectures


我已经在那里设置了这些选项。很奇怪。我想这一定与Facebook 3.0 SDK的源代码和链接器标志-lsqlite3.0有关。我刚刚更新了帖子,提供了所有这些信息。谢谢! - Eneko Alonso
在我的情况下,“有效架构”即使是i386、armv6、armv7也没有出现问题。但是“附加SDK”下的架构需要更改为“标准(armv7,armv7s)”。感谢您的建议。 - utsabiem

9
您在将Facebook SDK文件添加到您的项目时包含了src/Framework/Resources/Info.plist。只需从项目中删除它,一切都会重新正常工作。保证! :)

1
是的,这有效。你可能也会遇到“SBTarget 无效”的错误。我刚刚取消了“目标成员资格”中的“Info.plist”,然后它就起作用了。 非常感谢。 - Topsakal

6

我已经按照以下步骤解决了问题。

  1. 关闭Xcode
  2. 从设备中删除应用程序
  3. 重新启动设备
  4. 然后重新运行应用程序

现在它可以正常工作了。


3

确保plist文件中的bundle名称与项目名称相同。我将其更改后,程序运行正常。


2

我的第三方库之一无法在armv7s上运行,因此我删除了该选项。我还删除了armv6,只保留armv7作为唯一选项。它只使用armv7在手机上构建并运行。


1
我遇到了同样的问题。当我检查编译器时,它显示为不兼容的编译器。您需要使其有效。要设置有效的编译器,请按照以下步骤操作:
选择您的项目---->构建设置--> 在搜索栏中键入编译器并搜索,
现在您可以在构建选项下找到编译器选项,将其设置为有效的一个。

1

我已经通过以下步骤解决了问题:

关闭Xcode 从设备中删除应用程序 重启设备 然后重新运行应用程序 它可以正常工作。


1

只需要在目标——>构建设置——>构建选项中选择LLVM编译器。

We just need to change the unsupported compiler to the default compiler :)


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