升级到Xcode 5.0后,Xcode无法使用所选设备运行。

26

今天我升级到了xcode 5.0,然后按下播放键来在iOS模拟器中运行我的项目。一开始这样做是有效的。之后我决定想要运行分析器。但当我尝试这样做时,我收到了这条消息:

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

我查看了一些关于这个问题的过去帖子并决定执行 Clean and Build。现在我无法在剖析器或模拟器中运行。我不断收到以下消息:

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

我该如何解决这个问题?

以下是各种设置:

我的部署目标是6.1

我的构建设置体系结构如下:

我也尝试将部署目标更改为7.0,但那也没有起作用。

8个回答

77

看起来问题与构建设置中所示的架构无关。相反,我发现问题似乎与C/C++/Objective C的编译器相关。我使用的是gcc编译器(com.apple.compilers.llvmgcc42),而Xcode 5将其标记为不受支持。

如果我将编译器更改为苹果公司默认的Apple LLVM 5.0,则项目将构建,并且现在可以在模拟器上运行。缺点是我有很多与cocos2D v1.0源代码相关的编译器警告。但是至少我有了一个前进的方向。


1
谢谢!这让我困惑了几个小时。实际上,由于LLVM的一个错误,我在之前的版本中切换到了GCC。 - Jay Rafferty
3
这对我来说不是一个解决方案。我的项目已经设置为使用LLVM 5.0进行编译。 - Rob Johansen
除了在 Info.plist 中设置 CFBundleExecutable 为 ${EXECUTABLE_NAME},这对我也起作用了。 - kraftydevil
非常好!你节省了我的时间 ;) - Lapinou

34
请按照下列步骤操作:

1. 进入项目构建设置(Project Build setting)

2. 将C/C++/Objective C编译器更改为默认编译器(Apple LLVM 5.0) (请参考以下图片)

enter image description here


谢谢,特别是提供截图! - Denis
谢谢!这样做节省了我的时间!上面的回答也是一样的,但你通过截图让我们更容易理解。@Chirs Alen - simbesi.com

10

我需要在两个地方更改默认编译器(Apple LLVM 5.0)的编译器:

  1. 构建设置>构建选项> C/C++ / Objective-C编译器(更改为LLVM)
  2. 构建规则>使用GCC编译文件 *.mc(更改为LLVM)

很难找到,因为即使构建规则指向未定义的编译器,代码也会编译。


1
当我打开多年前的一个旧项目时发生了这种情况(而且,某些方案已经丢失了)。谢谢! - Nicolas Miari
我正在使用Xcode 5.1.1,但在构建规则下没有看到FILES选项。是否有其他方法来定位这个第二个更改? - jsherk

7

在检查了所有的构建设置15分钟后,以下方法适用于我(Xcode 5.0.2):

退出并重新启动Xcode


6

请检查 Info.plist 文件中的可执行文件(也称为 CFBundleExecutable)是否设置为 ${EXECUTABLE_NAME} 而不是任何硬编码的值。这将确保即使您更改项目名称、目标名称或方案名称,它仍然可以正常工作。


3
这个问题通常在旧项目上复制目标后出现。
请在目标的Info.plist中设置以下内容:
Bundle Name = ${PRODUCT_NAME}
Bundle Display Name = ${PRODUCT_NAME}
Executable file = ${EXECUTABLE_NAME}

使用这些设置进行构建和运行,成功构建后,可以将其更改为任何您想要的内容。


1
这对我有效:“退出并重新启动Xcode”。我最近更新了一些内容,然后在Xcode上的测试设备显示为“iDevice”而不是iPhone或iPod。所以我重启后,我的iPhone又出现在目标列表中了。

0
我在更改目标属性中的“Bundle name”键的值时遇到了这个错误。将其改回“%{PRODUCT_NAME}”对我解决了问题。

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