53

今天早上我正在运行我的应用程序,现在当我尝试在 iPhone 5.1 模拟器上运行时突然出现以下错误。

无法在所选目标上运行

目标不支持构建所选软件的体系结构。切换到支持该架构的目的地以运行所选软件。

我删除了这些方案,但仍然没有解决方案。

我正在使用山狮。我正在使用 xCode 4.4(最近升级到 Mountain Lion 和 xCode 4.4)

更新 1:这是我的构建设置的视图:

在此处输入图像描述

更新:这是阻止它运行的实际错误。

在此处输入图像描述

4

37 回答 37

68

您可以按照以下步骤操作:

  • 退出 Xcode 和 iPhone 模拟器
  • 拔下您的设备
  • /Users/your_usr_name/Library/Developer/Xcode/DerivedData/
  • 删除该文件夹下的所有数据
  • 再次启动 Xcode 并运行您的项目

希望这能解决您的问题。

于 2012-10-03T12:14:11.847 回答
33

从 Facebook SDK 3.1 更新到 Facebook SDK 3.1.1 后,我遇到了这个问题。我的错,我猜。

在“resources”文件夹中,现在有一个完全无用但危险的 info.plist,如果导入,可能会破坏您的项目文件。不知道他们为什么把它包括在内,但我相信我们最近很少有人犯同样的错误。

于 2012-11-09T13:56:31.553 回答
17

我在 Xcode 4.4 版本中发现了这个问题。最后我以这种方式解决了它:

在您的项目中找到“Info.plist”,然后在窗口的右侧视图中取消选择目标成员资格,它适用于我。

于 2012-09-13T09:44:00.870 回答
8

您可能还想检查项目是否在项目设置中使用受支持的编译器蓝色显示的选项

于 2014-05-12T19:22:10.143 回答
7

它只是复制了 Info.plist 文件,只需在文件中使用 1 个 Info.plist 文件,然后重新启动 xcode,它对我来说是固定的

于 2013-02-10T00:25:21.003 回答
6

我刚刚在 Xcode 4.5.1 中遇到了这个错误,在我从构建设置中取出所有非字母字符后,错误就消失了Product Name

于 2012-10-17T20:01:07.320 回答
4

我相信这可能是 Xcode 4.4+ 当前未列出的错误。我的项目有/遇到了同样的问题。我删除了所有版本的 Xcode 并以 4.4 重新启动,打开我的项目并再次出现错误。

然后,我使用不同名称的模板开始了一个新项目。没有问题。

然后我重命名了我的旧项目,启动了一个具有相同名称的新空项目并构建/运行并再次出现错误。这个新项目只不过是一个什么都不做的视图控制器。我应该得到一个空白屏幕,但得到了与您相同的错误。

沮丧的我关闭了一天并重新运行了旧项目并且它起作用了。我没有改变任何东西。目前我再次遇到错误,重新启动或重新启动 Xcode 都没有修复它。

所以总而言之,一个项目可以完全不做任何更改,有时它可以构建和运行良好,有时你会得到这个错误。作为记录,我在运行 Xcode 4.3 时没有收到此错误。

直到我升级到恰好在同一天的 Mountain Lion 和 Xcode 4.4 后,我的问题才出现。现在我无法回到 100% 可行的配置。

于 2012-08-06T23:04:49.007 回答
4

将我的文件提交到 SVN 并在新目录中签出项目为我解决了这个问题。

于 2012-08-14T16:24:16.067 回答
3

查看该架构中的项目和目标构建设置,看看是否有任何变化。当第一次从 Xcode 3 到 4 时,它曾经以隐藏的方式破坏,给出同样的错误,最后你不得不将 i386 添加到“Valid Architectures”行。我刚刚查看了我从 Xcode 4.1 开始的大项目,它没有显示任何关于 i386 等的信息,但是我有其他较新的项目,我在 $(ARCHS_STANDARD_32_BIT) 行中看到了这个灰色的东西。

编辑:我和一位大师朋友重新审视了这一点。我们俩都无法在我们的项目中找到与 i386 的链接——Xcode 使用了一些魔法。也就是说,我确实在项目中的二进制 plist 中对 i386 产生了影响,这导致我提出另一个建议。

在您的构建设置中,确保所有“架构”都是 $(ARCHS_STANDARD_32_BIT)。

如果这不起作用,我们建议您在方案菜单中选择 iPhone 5.1 Simulator 时查看构建的 compile 和 ld 行 - 看看它是否真的是 i386,

另一个想法 - 将所有方案和用户设置移动到某处的保存文件夹(项目关闭),然后重新打开并重新创建方案。现在再试一次。在我的任何 project.pbxproj 文件中都没有对 i386 的引用,所以我们怀疑这与目标设备的方案设置有某种关系。

祝你好运!

于 2012-08-01T23:01:49.517 回答
3

我已经解决了在项目和目标构建设置中将关键“构建变体”从“armv7”更改为“正常”的问题

于 2012-11-08T08:13:39.213 回答
3

除了删除这个目录下的所有文件Users/your_usr_name/Library/Developer/Xcode/DerivedData/

我重新启动了我的mac,它工作正常(重新启动xcode并且模拟器没有为我剪掉它)

于 2013-01-17T13:39:38.187 回答
2

我的项目面临同样的问题。这是对情况和我的解决方案的简要说明。这可能适用于您的情况,也可能不适用。

我在一个有多个 iOS 项目的地方工作。我最近将系统升级到 Mac OSX 10.8 和 Xcode 4.4.1。我正在研究一个最初基于 Xcode 4.1 for iOS 4 构建的项目。由于 Xcode 在 4.3 之前都有 iOS 4 模拟器,因此该项目在所有模拟器上都构建并运行良好。然而,在 Xcode 4.4.1 中,我没有找到 iOS 4 模拟器,也没有简单的方法来安装它们,这就是为什么我收到“无法在选定目标上运行”错误的原因。以下是我如何让我的项目运行。

  • 检查并为所有配置文件Build Settings > Architectures设置架构。Standard (armv7)${ARCHS_STANDARD_32_BIT}

  • 在我的情况下设置Base SDKLatest iOS(<ios version #>)5.1。

  • 为所有配置文件设置Build Active Architecture Only为。NO

  • 为所有配置文件设置Valid Architectures为。armv6 armv7您可能需要添加任何一个,具体取决于已经可用的内容。

  • 设置iOS Deployment TargetiOS 5.1(在我的情况下)。

  • 确保在项目选项卡下具有相同的Deployment Target目标Summary

清洁并运行并交叉手指!

于 2012-10-03T16:36:43.117 回答
2

就我而言,在删除整个 Resources 文件夹、将 Resources 文件夹从其他或旧项目复制到当前项目然后添加回该文件夹之后,就会出现问题。

我在分析工具的帮助下解决了这个问题:分析后,它让我对“复制捆绑资源”中的 Info.plist 感到温暖。

只需转到 Copy Bundle Resource(在 Build Phrase 选项卡上)删除 Info.plist,然后重新启动 Xcode,清理并构建。我的项目恢复正常。

希望能帮助别人:)

于 2012-12-02T00:44:11.723 回答
2

我遇到了同样的问题。就我而言,似乎是我更改了多目标项目的捆绑名称,而不是产品名称。一旦我通过正确编辑项目名称并将捆绑名称设置回 ${PRODUCT_NAME} 来纠正它,它将再次在模拟器中运行。

这可能不是每个人的答案,但似乎产品命名错误(特殊字符、空格等)是许多人的原因,这就是促使我回顾我的重命名的原因。

于 2012-08-26T22:10:52.507 回答
2

我认为很多这些解决方案都会强制进行完全重建,这就是为我解决这个问题的原因。

我做了 Product => Clean,问题就消失了。

于 2012-12-31T20:03:23.190 回答
2

对我来说,这很有效: - 检查所有产品参考在设置和列表中是否一致。还要检查产品名称是否包含任何空格或其他“非法”字符。

于 2013-01-07T12:37:08.460 回答
1

从回复来看,这种类型的错误有很多潜在的来源,所以这里是我自己的(诚然粗心)版本的错误(和简单的解决方案):

  • XCode 项目构建设置可以设置在两个级别:项目级别和目标级别。对于那些不太熟悉的人,目标级别是您拥有可执行应用程序的地方,通常还有其他项目,例如动态库构建。
  • 在 Build Settings 的 Linking 部分有一个 Mach-O Type 选项,您可以在其中设置 Executable、Dynamic Library、Static Library 等。
  • 我在准备动态库时遇到了麻烦,正在扫描项目的构建设置,发现 Mach-O 是空白的。所以我设置为动态库。然后我继续查看了更多的东西,忘记了我做了这个改变。但我没有意识到我处于整体项目级别,而不是实际动态库的目标级别。这将所有目标 Mach-O 设置更改为动态库。
  • 当然,可执行目标不喜欢被视为动态库,我收到了 OP 的错误消息。
  • 在其目标级别构建设置中将可执行文件设置回可执行 Mach-O 修复了所有问题。令人讨厌的是,项目级设置仍然表示动态库,但正确的目标级设置一切正常。

我知道很傻,但是由于上面列出的一些更激烈的解决方案可以间接解决这个错误,我想我会分享一下,以防其他人犯了同样的错误!

于 2012-12-31T22:12:08.517 回答
1

我从时间机器中恢复数据。请注意,这与 1 小时前存储的数据完全相同。问题从昨天开始。所以它应该是完全相同的数据。\

然而它确实有效。

于 2013-01-03T01:10:24.163 回答
1

我尝试了这里提到的一切。没有任何效果。似乎我以某种方式导入了 Info.plist 两次。为了修复它,我选择了项目并按下“验证设置”按钮。之后它对我有用。

于 2013-03-03T23:59:22.777 回答
1

你会很高兴知道这个问题有一个非常简单的解决方案。在项目导航树中选择 Info.plist 并确保它没有分配给目标。我已经确认这是正确的解决方案。如果为 iOS 6 或更早版本构建,您可能还需要将 armv6 添加到支持的架构中

于 2013-12-19T19:57:09.430 回答
1

我解决这个错误的方法是在我的项目中添加一个虚拟函数。我的问题是我的应用程序没有自己的代码,只有链接代码

我有两个项目的不寻常情况:一个“App”父级和一个“Engine”子级。所有可编译的代码都在子级中,父级简单地与子级链接,将大量特定于应用程序的资源复制到项目中。

显然这让 Xcode 感到难过,导致上述错误。

我的解决方案是将此 C 函数/文件添加到 App 项目中:

int workaround_for_xcode_reporting_cannot_run_on_selected_destination(){return 0;}

于 2013-01-02T03:50:29.367 回答
1

尝试重命名您的项目。我通过这种方式解决了。

于 2012-12-19T23:39:11.400 回答
1

经过半天的试验,我认为这意味着调试器找不到要启动的可执行文件。我认为这是与先前答案的一个重要区别,因为它是一个潜在的原因,可能有很多症状。在我的情况下,它无法为自定义构建协调应用程序 Info.plist,我们正在复制构建的 plist。我将构建设置更改为 AltDebug 的 Alt-Info.plist 并修复了它。也意味着不再复制。

你的根本原因可能不同,所以关键是想想为什么 Xcode 可能无法找到你构建的应用程序。

于 2013-07-16T18:55:30.280 回答
0

另一个变体解决方案:在尝试了上面列表中的几乎所有内容之后,我通过解决无法找到 TestFlightSDK1 路径的警告来解决此问题。为此,我从 Header Search Paths (Build Settings>Search Paths) 中删除了相关路径并删除了 TestFlightSDK,现在一切正常。

于 2012-12-07T10:35:29.293 回答
0

上面的一切都不起作用,但这确实:

  1. 确保您在 git 下拥有所有(不可忽略的)文件

  2. 我的 .gitignore 看起来像这样

    *.xcworkspace
    xcuserdata
    .DS_Store
    Pods
    
  3. 在某处备份 MyProject.xcworkspace

  4. 删除 MyProject.xcworkspace 和 MyProject

  5. git reset --hard HEAD

  6. 将 MyProject.xcworkspace 复制回您的工作目录

  7. pod install

  8. 重建!

于 2013-07-25T11:11:49.870 回答
0

从 Copy Bundle Resource 构建阶段删除 Info.plist。这对我有用!

于 2013-06-26T07:59:54.047 回答
0

我从一开始就有这个,看起来模拟器无法处理虚拟智能卡是一个问题。不幸的是,我最终只使用通过 USB 连接的 Android 手机。

于 2013-06-19T15:27:15.580 回答
0

发生两件事后,我遇到了同样的问题:

  • 我升级到 Facebook SDK 3.1
  • 我更新了我的 OSX(带有次要版本更新)

我唯一有效的解决方法是添加 armv7s(注意最后的“s”!!!)就像这里建议的那样: https ://stackoverflow.com/a/12540654/531527

于 2012-10-15T08:16:14.230 回答
0

在为 OSX 项目升级到 Mountain Lion 和 XCode 4.4.1 后,我遇到了这个问题。为了解决这个问题,我不得不将我的部署目标升级到 10.5 或更高版本;它设置为 10.4 及更高版本。

于 2012-09-01T16:17:06.940 回答
0

在这里尝试其他答案和做这个答案所说的我似乎已经解决了这个问题

于 2013-07-25T13:32:54.400 回答
0

我有这个问题并应用不同的解决方案但它没有用,所以我找到了这个问题的解决方案,执行这些步骤

1- 在构建设置 armv6 中添加架构 2- 只需进行验证设置 3- 清理代码 4- 构建并运行

干杯

于 2013-11-20T05:51:15.993 回答
0

您必须在“活动监视器”中找到 Xcode 进程并将其杀死!我只是为了解决类似的问题!

于 2012-09-27T19:50:39.580 回答
0

意外删除 Resources 文件夹后,我遇到了这个问题,当我再次将其添加到项目中时,Bam !

我也在运行 Mountain Lion 和 XCode 4.4 !

试图找出导致这种情况的原因,但是当您删除然后添加 info.plist 文件时,它似乎被复制了!有人可以确认吗?

于 2012-10-02T19:06:19.817 回答
0

对我来说,它的 info.plist 重复条目导致了同样的问题。

从信息 plist 中删除了图标文件三角形并正常工作。

于 2013-07-06T19:53:43.173 回答
0

为我工作。

  1. 将您的存储库拖到垃圾箱,然后重新克隆它。
  2. 删除您设备上的应用。
  3. 重新连接并运行。它应该工作。
  4. 找一个出气筒来减轻你的挫败感,抵制犯下严重罪行的冲动。
于 2019-06-04T01:48:55.197 回答
0

如果您使用的是 Xcode 8 Beta,那么您必须更改以下内容:

- 选择项目并进入目标构建设置 - 输入键“构建变体”到搜索框 - 刚刚从“armv7”更改为“正常”或反转它。

于 2016-06-18T05:09:08.937 回答
0

更改supported platform->debug为:IOS 在此处输入图像描述

于 2021-12-09T10:32:20.787 回答