仅限构建的设备不能用于运行此目标


85

尝试测试应用程序时出现此错误。

只能构建的设备不能用于运行此目标。

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


如果您使用的是设备并且拥有Apple开发者帐户,请从设备中删除该应用程序,然后运行它。
BollMose19年

Answers:


78

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


7
说明:Xcode尝试使用通用iOS设备进行构建,但是测试必须在模拟器上进行。
阿德里安娜

7
完整而有效的命令:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianjian Gao

/ usr / bin / xcodebuild是一个二进制文件。您可能不应该修改它。
问的Aronsson

为什么要修改它?
Quver

您无需将此添加到中xcodebuild。您所需
要做的

44

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

菜单图片


18

下面是我的方式

选择项目->常规->部署信息->部署目标->选择较低版本 在此处输入图片说明


1
当您导入的部署目标高于本地部署目标时,此情况很有用,降低该目标可以解决问题
Parama Dharmika

7

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

我针对该问题的解决方案是选择Build Settings ---> Deployment -----> IOS Deployment Target ---->选择一个较低的版本,例如8.0,

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


您是否安装了具有较新操作系统版本的模拟器?转到Xcode->首选项->下载以查看兼容的旧版模拟器运行时的列表。
Lepidopteron

7

您需要获取有效目的地的列表。为此,请指定错误的键值对,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

4

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

插入设备,然后从活动方案弹出窗口中选择它,或者选择其中一个模拟器,您应该就可以使用了。


我不叫自己是一个车,因为我很擅长这个东西...谢谢你2个时间一分一秒哈哈....
yrpalnoob

3

在尝试在锁定的设备上运行该应用程序后,使用XCode 8.3.2出现此错误消息。我已按要求解锁并重新连接,但“不能使用仅限构建的设备来运行此目标”。消息出现。

我只是将目标更改为模拟器,然后又将其更改了-它解决了我的问题。


2

对于它的价值,如果出现错误A build only device cannot be used to run this target,请在“问题”导航器中看到以下文本:

ProjectName
目标完整性:
iOS部署目标'
XX.X'比
目标ProjectName中的SDK'iOS YY.Y'更新

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

解决方案是下载Xcode最新测试版,该版本应支持该应用程序要求的非公开发布的iOS SDK。如果您拥有最新的Xcode,请尝试在中找到目标iOS Preferences -> Components -> Simulators


2

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


1

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

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

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


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

0

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

这就是我解决的问题。

我删除了我的苹果帐户,并在xcode首选项上重新设置(登录),此问题已解决。

ps。在iPhone 10.1上,我需要在“常规”>“设备管理”>“帐户信息”>“ Trust App”上按“信任”按钮


0

我为模拟器修复了此问题,

首先检查您的模拟器列表

窗口>设备和模拟器

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

如果只有Apple Watch OS,则应下载新的IOS Simulator

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

选择正确的IOS Simulator并下载。


0

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


0

好吧,如果您想获取可用目的地的列表,请调用xcodebuild并传递命令行选项-showdestinations,它将打印有效的选项供您选择:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

我在上面几乎尝试了所有方法,包括重新启动XCode,但没有一个对我有用。我只需重启Mac就解决了这个问题。是的,经典解决方案。

旁注:在我向我的XCode询问了我的Mac密码后(可能是在自动升级之后),发生了此问题。


0

对于xcode v11:

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

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

0

就我而言,这发生在我选择通用iOS设备并尝试“构建”以将其发布到AppStore时。
但我应该选择产品->存档


0

我遇到了同样的错误消息。到目前为止,这是我经历过的事情;

步骤1:检查目标。

我当前的目标是IOS 13.2。从这里,您将看不到计算机上当前具有的版本。

在此处输入图片说明

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

  • 单击通用IOS设备

在此处输入图片说明

  • 这将显示一个包含“下载模拟器...”选择的下拉菜单
  • 如果看不到“下载模拟器...”选择,则需要降低目标。在我的情况下,从13.2我做到了13.0(这取决于你目前的XCode),然后重复步骤2再次
  • 从这里,我现在可以看到“下载模拟器...”选择
  • 选择它

在此处输入图片说明

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

在此处输入图片说明

步骤3:相应地更改IOS目标

  • 既然您已经知道本地有哪些可用的模拟器版本,现在可以更改IOS目标了。
  • 就我而言,我选择使用IOS 11(仅针对此示例)
  • 然后我改变目标

在此处输入图片说明

  • 再次单击通用IOS设备

在此处输入图片说明

  • 现在,您可以从此处在该IOS下选择任何模拟器

在此处输入图片说明

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


-1

我有一个完全不同的问题。由于某种原因,我的应用程序“设备”被设置为通用版本,而不是iPhone。当我将其切换到iPhone时,一切正常。不需要任何额外的设置。


-2

这对我有用。

当您已经为其他方案构建设备时,您正在尝试在该设备上运行。去

产品>清洁。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.