【问题标题】:A build only device cannot be used to run this target仅构建设备不能用于运行此目标
【发布时间】:2016-02-18 06:52:11
【问题描述】:

我在尝试测试应用时收到此错误。

只能使用构建设备来运行此目标。

没有支持的 iOS 设备可用。连接设备以运行您的应用程序或选择模拟设备作为目标。

【问题讨论】:

  • 如果您使用设备并且拥有苹果开发者账号,请从您的设备中删除该应用,然后运行它。

标签: ios xcode


【解决方案1】:

我遇到了同样的错误信息。以下是我迄今为止所经历和所做的;

第 1 步:检查您的目标。

我目前的目标是 IOS 13.2。从这里,你将看不到什么 您当前在您的机器上拥有的版本。

第 2 步:检查您本地的可用版本

  • 点击通用IOS设备

  • 这将显示一个下拉菜单,其中包含 下载模拟器... 选择
  • 如果 Download Simulators... 选项不可见,您需要降低目标。就我而言,从 13.2 开始,我将其升级为 13.0(这取决于您当前的 XCode),然后再次重复 步骤 2
  • 从这里,我现在可以看到 Download Simulators... 选择
  • 选择它

  • 您现在将看到有哪些可用版本
  • 从这里,您可以选择下载或仅使用您拥有的版本(选择的版本)

第 3 步:相应地更改您的 IOS 目标

  • 现在您已经知道本地有哪些可用的模拟器版本,现在可以更改 IOS 目标。
  • 就我而言,我选择使用 IOS 11(仅用于此示例)
  • 那我换个目标

  • 再次点击通用IOS设备

  • 从这里,您现在可以选择该 IOS 下的任何模拟器

我不是专家,我只是想分享一下我的经验,希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    在我的情况下,当我选择了一个通用 iOS 设备并尝试“构建”以将其发布到 AppStore 时,就会发生这种情况。
    但我应该选择 Product -> Archive

    【讨论】:

      【解决方案3】:

      如果您使用的是cordova/Ionic 转到产品-> 目的地-> 选择目标并重新运行

      【讨论】:

        【解决方案4】:

        对于 xcode v11:

        我在尝试为我的项目创建档案时遇到了这个问题。当设备设置为“通用 iOS 设备”时,我试图单击“构建”,但正确的步骤是:

        1. 将设备设置为“通用 iOS 设备”
        2. 转到产品 -> 存档(跳过按构建!

        【讨论】:

          【解决方案5】:

          我几乎尝试了以上所有方法,包括重新启动 XCode,但没有一个对我有用。我通过简单地重新启动我的 Mac 解决了这个问题。是的,经典解决方案。

          附注:我的 XCode 在向我请求我的 Mac 密码后出现了这个问题,可能是在自动升级之后。

          【讨论】:

            【解决方案6】:

            如果你想得到可用的destinations列表,然后调用xcodebuild并传入命令行选项-showdestinations,它会打印出有效的选项供你选择:

            xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget
            

            【讨论】:

              【解决方案7】:

              我通过转到项目设置解决了这个问题,在我的“目标”部分下,我必须将测试目标设置为正确的团队。

              【讨论】:

                【解决方案8】:

                我为模拟器解决了这个问题,

                首先检查你的模拟器列表

                窗口 > 设备和模拟器

                选择任何设备并单击检查操作系统版本后

                如果你只有 Apple Watch 操作系统,你应该下载新的 IOS 模拟器

                然后点击下载更多模拟器运行时..

                选择正确的 IOS 模拟器并下载。

                【讨论】:

                  【解决方案9】:

                  您需要获取有效目的地的列表。为此,请指定一个错误的键值对,xcodebuild 将吐出有效的组合:

                  列出目的地命令

                  xcodebuild test -destination 'platform=iOS Simulator' -workspace Register.xcworkspace -scheme ThatTestTarget
                  

                  输出示例

                  Available destinations for the "ThatTestTarget" scheme:
                      { platform:iOS Simulator, id:145A9B7E-B336-4819-8059-2FFEC408E05E, OS:11.1, name:iPad (5th generation) }
                      { platform:iOS Simulator, id:69ABAF6F-ADA3-4E38-AC97-D71001447663, OS:9.3, name:iPad 2 }
                      { platform:iOS Simulator, id:550E2F18-406D-4586-84BB-E48F1D704F27, OS:10.3.1, name:iPad Air }
                      { platform:iOS Simulator, id:94734F1C-775F-40FA-9015-8196C08805EF, OS:11.1, name:iPad Air }
                      { platform:iOS Simulator, id:1DB953DD-CD97-4EC7-8006-BCF01DF3E63F, OS:11.1, name:iPad Air 2 }
                      { platform:iOS Simulator, id:DE3072DA-2E31-423D-9D77-220626F8B90A, OS:11.1, name:iPad Pro (9.7-inch) }
                      { platform:iOS Simulator, id:3B5D18DB-13B5-4F28-B654-7D2ECDD1F6F0, OS:11.1, name:iPad Pro (10.5-inch) }
                      { platform:iOS Simulator, id:A4225E3A-512C-4F42-ADD9-1E7E448C4D27, OS:11.1, name:iPad Pro (12.9-inch) }
                      { platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation) }
                  

                  更改等号的冒号、删除空格、忽略 ID

                  所以如果你想使用这个目的地:

                  platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation)
                  

                  把冒号换成逗号,去掉空格,去掉ID,这样就得到了这个字符串:

                  platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)
                  

                  那么整个命令就是:

                  xcodebuild test -destination 'platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)' -workspace Register.xcworkspace -scheme ThatTestTarget
                  

                  【讨论】:

                    【解决方案10】:

                    对于它的价值,如果您收到错误 A build only device cannot be used to run this target,并在问题导航器中查看此文本:

                    项目名称
                    目标完整性:
                    iOS 部署目标“XX.X”是
                    比 SDK 中的“iOS YY.Y”更新
                    目标项目名称

                    那么问题是该项目需要一个比您可用的 Xcode 版本更新的 iOS SDK。例如,在利用新/测试版 iOS SDK 功能(例如 ARKit)的项目中,您会发现这个问题。

                    解决办法是下载newest beta version of Xcode,它应该支持应用程序需要的非公开发布的iOS SDK。如果您有最新的 Xcode,请尝试在 Preferences -> Components -> Simulators 中查找目标 iOS。

                    【讨论】:

                      【解决方案11】:

                      我遇到了一个完全不同的问题。出于某种原因,我的应用“Devices”被设置为 Universal 构建,而不是 iPhone。当我将它切换到 iPhone 时,一切正常。不需要任何额外的设置。

                      【讨论】:

                        【解决方案12】:

                        在 XCode 8.3.2 中,我尝试在锁定的设备上运行应用程序后收到此错误消息。我按要求解锁并重新连接,但“A build only device cannot be used to run this target”。消息出现了。

                        我只是将目标更改为模拟器并将其改回 - 它解决了我的问题。

                        【讨论】:

                          【解决方案13】:

                          修改@Quver 的答案。对于最新的 Xcode 版本(8.3),目标命令的参数应该用双引号给出。单引号对我不起作用

                          -destination "platform=iOS Simulator,name=iPhone 7" 添加到您的xcodebuild

                          我没有在上面的命令中提到操作系统版本,因为当发布更新版本的 iOS 时,该命令会通过错误提示找不到此设备。所以最好不要给出OS版本

                          【讨论】:

                            【解决方案14】:

                            也许方案已切换到通用设备。尝试从方案菜单中再次选择连接的设备:

                            【讨论】:

                              【解决方案15】:

                              xcodebuild 在我的情况下不起作用。

                              这是我解决的问题。

                              我已删除我的苹果帐户并在 xcode 偏好设置上重新设置(登录), 这已经解决了。

                              ps。在 iphone 10.1 上,我需要在 General > Device Management > account info > Trust App 上按下 Trust 按钮

                              【讨论】:

                                【解决方案16】:

                                下面是我的方式

                                选择项目 -> 常规 -> 部署信息 -> 部署目标 -> 选择较低版本

                                【讨论】:

                                • 这种情况在你导入部署目标高于本地部署目标的项目时很有用,降低它可以解决问题
                                【解决方案17】:

                                这对我有用。

                                当您已经为不同的方案构建设备时,您正在尝试在设备上运行。 去

                                产品 > 清洁。

                                然后使用从活动方案中选择的设备进行构建。

                                【讨论】:

                                  【解决方案18】:
                                  1. 我申请了一个新的AppleID并将其添加到“Xcode->Preferences->Account”来解决这个问题。 (Xcode 7.3)
                                  2. 同时我在“Xcode->Preferences->Account”中删除了原来的AppleID,因为它不再是付费帐户,无法添加新设备。

                                  【讨论】:

                                    【解决方案19】:

                                    -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' 添加到您的xcodebuild

                                    【讨论】:

                                    • 解释:Xcode 尝试使用通用 iOS 设备构建,但测试必须在模拟器中构建。
                                    • 一个完整且有效的命令:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
                                    • /usr/bin/xcodebuild 是一个二进制文件。您可能不应该修改它。
                                    • 为什么要修改?
                                    • 您无需将其添加到xcodebuild。您只需要使用参数运行此命令
                                    【解决方案20】:

                                    我遇到了只能选择“通用 iOS 设备”的问题。 当我跑步时,它说 “只能使用构建设备来运行此目标。没有可用的受支持的 iOS 设备。连接设备以运行您的应用程序或选择模拟设备作为目标”

                                    而我的解决方案是选择构建设置--->部署---->IOS部署目标---->选择较低的版本,如8.0,

                                    我发现模拟器出来了,可以选择。

                                    【讨论】:

                                    • 您是否安装了较新操作系统版本的模拟器?转到 Xcode -> Preferences -> Downloads 以查看兼容的旧版模拟器运行时列表。
                                    【解决方案21】:

                                    您正在为 Xcode 的“仅构建设备”构建,它正在编译应用程序。对于 ARM 处理器(而为模拟器编译的目标是 Mac 上的 Intel CPU。)

                                    插入设备并从活动方案弹出窗口中选择它,或者,选择其中一个模拟器,你应该很高兴。

                                    【讨论】:

                                    • 我不称自己是白痴,因为我擅长这些东西......谢谢你浪费了两个小时哈......
                                    猜你喜欢
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2013-06-30
                                    • 2012-12-08
                                    • 2012-05-24
                                    • 1970-01-01
                                    • 2023-01-15
                                    相关资源
                                    最近更新 更多