VMware上的macOS无法识别iOS设备。

99

我正在使用VMware上的Mac OS来进行iOS应用程序开发。

在更新操作系统和Xcode后,iOS设备不可用,因此无法测试。

当将设备连接到电脑时,在VMware中显示设备已连接并标有绿点。但是,在Xcode的设备列表中没有出现该设备。

我正在使用Mac OS 10.11。有人有什么想法吗?


这个有用吗?(可能不是...)https://dev59.com/IF_Va4cB1Zd3GeqPXdmc请注意,必须进行一些非常棘手的握手才能使用设备进行开发。第一次应该在您的设备上出现“信任?”对话框。如果没有出现,则可能根本无法执行此操作,因为设备未看到另一端有虚拟Mac。 - matt
当设备连接时,我已确认“信任此计算机”的选项。 - Ken W.
1
如果“信任”确认未出现,您可以在虚拟机中打开iTunes,可能会显示对话框。 - Ahmad Behzadi
相关编程问题 https://askubuntu.com/questions/1109129/macos-vmware-guest-does-not-recognize-usb-dvice https://dev59.com/UVoV5IYBdhLWcg3wivL9#46779998 https://www.reddit.com/r/hackintosh/comments/7xyi7r/vmware_usb_iphone_connection_loop/ https://superuser.com/questions/981711/virtualized-osx-cant-see-iphone-device - Fabrizio Bertoglio
12个回答

222

我曾经遇到相同的问题,但解决起来非常容易。按照以下步骤操作:

1)在虚拟机(VMWare)设置中:

  • 将USB兼容性设置为2.0而不是3.0
  • 勾选“显示所有USB输入设备”设置

2)将设备添加到您的苹果开发者帐户允许开发设备列表中。如果没有这一步骤,就无法在Xcode中使用您的设备。

接下来是一些说明:注册单个设备


3
这是一个很好的解决方法,但并不是最终的解决方案。如果我想在同一台虚拟机上使用USB3怎么办? - user643011
同样适用于VirtualBox,但必须安装VirtualBox扩展包并使用USB 3。 - Amr Lotfy
发布给其他开发者 -> 除了这个解决方案,其他0个解决方案对我都没用,非常感谢。我的情况是iTunes或Xcode都无法检测到我的iPhone,我尝试了所有其他的解决方案。只需插入2.0 USB并重新启动即可解决此问题,现在我的Xcode完美地检测到我的iPhone。 - Doctor
这个可行,但是顺便提一下,它会先发出一个警告,关于“必须通过不太理想的主机控制器连接”的问题...只需点击继续即可。 - pmarreck
我也不得不从通用的 Lightning 电缆改为正品苹果电缆,以使 Safari 开发者模式能够看到我的 iPhone。 - BartmanEH
您好,我的VMware Workstation Player 14中的“显示所有USB输入设备”部分被禁用了。请问如何解决这个问题? - Franky

70

另一个答案缺少一些额外的信息,在下面这篇文章中也提到了。例如,当iPhone在连接/断开循环时。所以这里有一个更好的解决方案:

  1. vmware.log中搜索你的iPhone USB的vid和pid:
    示例:

vmx | USB: Found device [name:Apple\ IR\ Receiver vid:05ac pid:12a8
  • 关闭 VMware (以解锁.vmx文件)

  • .vmx中添加:

  • usb.quirks.device0 = "0xvid:0xpid skip-reset, skip-refresh, skip-setconfig"  
    

    0xvid:0xpid替换为在vmware.log中找到的vid和pid。例如:

    usb.quirks.device0 = "0x05ac:0x12a8 skip-reset, skip-refresh, skip-setconfig"
    
  • 在vmware中,选择 编辑虚拟机 > USB 控制器: USB 兼容性:USB 2.0
    启用:自动连接新的 USB 设备
    启用:显示所有 USB 输入设备
    启用:与虚拟机共享蓝牙设备

  • 启动 Mac OS 并确保鼠标焦点在 vmware 上(或者只需使用登录提示)


  • 1
    这对我很有效。此外,我的vid和pid也相同,我正在使用正品苹果USB电缆(如果有任何区别的话)。 - legalimpurity
    2
    这应该是被接受的答案,当使用Windows并且设备不断在操作系统之间切换时,这解决了问题。 - gi097
    1
    我按照https://kb.vmware.com/s/article/774?lang=en_US中的指示,将`usb.quirks.device0`更改为`"vid:pid skip-refresh"`,以解决连续问题。我在日志中收到以下错误消息:“usb device busy(16)”。我还使用https://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line/661#661重置了USB连接。我禁用了USB设备的自动挂载https://askubuntu.com/questions/89244/how-to-disable-automount-in-nautiluss-preferences。 关键是阅读错误日志并在线上调查vmware社区。 - Fabrizio Bertoglio
    我经常遇到设备频繁断开的问题,重新连接时也无法显示“信任”弹窗。我解决了这个问题,退出虚拟机中的ITunes并重新打开即可。弹窗要么会出现,要么ITunes会检测到设备。 - Fabrizio Bertoglio
    如果我将设备更改为USB 2.0,我的键盘和鼠标在虚拟机中停止工作。 - BBacon
    显示剩余5条评论

    9
    我正在使用iPhone 8+和VMWare macOS High Sierra在Windows 10机器上运行。
    我经过了数十个故障排除帖子的研究,但它们中没有一个能够帮到我,除了将VM的USB设置为2.0。通过试错和相当数量的饮料,我终于找到了解决方法。
    解决方案:
    按照以下步骤进行:
    1. 关闭虚拟机后,进入您使用的任何一台机器的设置,并将USB设备更改为2.0。您可以在分配内存和核心的相同菜单中找到此选项。
    2. 确保您的手机已插入并关闭。
    3. 启动虚拟机,即macOS。
    4. 在mac启动时打开手机。
    5. 打开Xcode。

    7
    酒的种类重要吗?;P 对我来说,威士忌就足够了。 - TheBen
    1
    @WantIt 我使用的是Ryzen 3600。不幸的是,它并不像我在评论中写的那样完美,实际上几乎从来没有正常工作过,即使它偶尔能够工作,我也无法确定其工作条件。这就像俄罗斯轮盘赌一样。我放弃了这个想法,因为它占用了我很多时间,真是一个悲伤的故事。 - nt4f04und
    1
    @nt4f04und 我使用VMware 15.5让它工作了。但15.x版本无法正常工作。你用的是哪个版本?我认为旧的15.x版本仅包含了有关Darwin USB支持的糟糕错误。 - vvavepacket
    1
    @WantIt 很抱歉回复晚了,我正在使用15.0.4 build-12990004。感谢您提供的信息,我想稍后会尝试这个 https://www.youtube.com/watch?v=yuwjUv8-uGE。 - nt4f04und
    1
    @nt4f04und,很高兴你解决了问题!!!非常抱歉回复晚了,现在我会偶尔查看这个帖子,确保你得到了照顾。 - vvavepacket
    显示剩余6条评论

    6

    我在使用VMWare 12.5.2和Mac OS Sierra系统时遇到了同样的问题。
    以下是我用来解决这个问题的几个步骤(对我有效)。

    1. 打开VMWare。
    2. 选择你的操作系统。(我的是MacOS Sierra)
    3. 然后在左边选择"编辑虚拟机设置"选项
    4. 会弹出一个设置窗口。在那里,你需要选择“硬件”选项卡。
    5. 在那里,有一个“USB控制器”选项。选择它。你会在右侧找到选项。
    6. 在其中,将USB兼容性设置为“USB 2.0”,并勾选所有三个选项。选项必须如下所示: i)自动连接新的USB设备,ii)显示所有USB输入设备,iii)与虚拟机共享蓝牙设备。
    7. 按下OK。

    好了,现在可以工作了。现在您可以启动虚拟机,并尝试使用正确的USB电缆连接您的设备。有时候USB电缆可能存在未经授权的问题。如果仍然有疑问,可以在这里问我。


    1
    我尝试连接iPhone或iPad,但是它不起作用。 - Felix
    如果您仍然无法检测到您的iPhone,请尝试在VMWare屏幕处拔出并重新插入您的iPhone,这对我很有帮助。干杯 :) - Mohammad Mahroz

    6

    这里有另一个可以尝试的方法(我使用的是Windows 10):

    1. 停止虚拟机。
    2. 打开“开始”菜单。
    3. 键入“服务”。
    4. 找到VMWare USB仲裁服务并启动它。
    5. 连接你的设备,希望能够被检测出来。

    这是对我有效的方法。我不知道为什么一开始服务没有启动,而且它曾经在我的iPhone 7上正常工作。祝好运。


    4
    我想要添加一些内容。
    对于设备在Mac中工作,您必须确保它们已连接到Mac上。我不知道其他版本是如何处理的,但我正在使用VMware Workstation 12 Player。
    如果您进入播放器(左上角)>可移动设备>启用所需设备 这就是我所要做的。

    如果您使用虚拟机播放器(我使用的是VM Player 14),这种方法其实非常简单且正确。 - Tokenyet

    3
    按照答案中建议的操作进行,但确保您也在虚拟机内 单击 一下,以便在插入手机之前将焦点置于OSX上。在我的情况下,我不得不这样做才能让它正常工作。

    2

    我遇到了同样的问题。我在kb.vmware.com的解决方案中找到了答案。
    通过添加以下内容,它对我有效:

    usb.quirks.device0 = "0xvid:0xpid skip-refresh"
    

    以下是详细步骤:


    1. 关闭虚拟机并退出Workstation/Fusion。

      注意: 不要跳过此步骤。
       
    2. 在虚拟机包中打开vmware.log文件。有关更多信息,请参阅在VMware Workstation/Fusion中定位虚拟机包 (1007599)。
    3. 在控制台窗口顶部的筛选框中输入设备制造商的名称。

      例如,如果您输入Apple,则会看到类似于以下行:

      vmx | USB: Found device [name:Apple\ IR\ Receiver vid:05ac pid:8240 path:13/7/2 speed:full family:hid]



      此行具有USB设备的名称及其vid和pid信息。记下vid和pid值。
       

    4. 使用文本编辑器打开.vmx文件。有关更多信息,请参阅为您的Workstation/Fusion虚拟机编辑.vmx文件 (1014782)。
    5. 将此行添加到.vmx文件中,将vid和pid替换为第2步中记下的值,每个值前缀为数字0和字母x。

      usb.quirks.device0 = "0xvid:0xpid skip-reset"

      例如,对于在第2步中找到的Apple设备,此行为:

      usb.quirks.device0 = "0x05ac:0x8240 skip-reset"
       

    6. 保存.vmx文件。
    7. 重新打开Workstation/Fusion。编辑过的.vmx文件将重新加载更改。
    8. 启动虚拟机并连接设备。
    9. 如果问题未解决,请使用以下其中一行替换步骤4中添加的quirks行,并重复步骤5至8:
    usb.quirks.device0 = "0xvid:0xpid skip-refresh"
    usb.quirks.device0 = "0xvid:0xpid skip-setconfig"
    usb.quirks.device0 = "0xvid:0xpid skip-reset, skip-refresh, skip-setconfig"
    

    注意:

    • 每次只使用以下其中一行。如果一行不起作用,请将其替换为列表中的另一行。在.vmx文件中一次不要添加多个。
    • 最后一行同时使用了这三种特性。只有当其他三行都不起作用时才使用此选项。

    详细信息请参见此处


    0
    我正在使用VMWare Workstation 17 Player,下面的操作对我有效:
    转到VMware菜单,点击VMRemovable Devices -> Apple iPhone Connect(与主机断开连接)。

    0
    如果你在VMware上安装macOS时遇到了很多问题,我推荐你使用这个教程,它还提供了你需要的所有文件。这是一个直接明了的教程,可以完美地运行而不会有任何问题。

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