【问题标题】:How to check device id of iPhone simulator?如何检查 iPhone 模拟器的设备 ID?
【发布时间】:2011-10-20 14:30:31
【问题描述】:

我想检查我的 iPhone 模拟器应用程序的设备 ID。但不使用代码库。我知道如何使用 UIDevice 实例来处理代码库。

有什么方法可以在不使用代码库的情况下找到设备 ID?

【问题讨论】:

    标签: ios iphone ios-simulator


    【解决方案1】:

    编辑:查看其他答案以了解查看基于 CoreSimulator 的模拟器的 UDID 的新方法。

    1. instruments -s devices
    2. xcrun simctl list
    3. 从 Xcode:窗口 -> 设备和模拟器 -> 模拟器。 Identifier 值是 UDID。

    从 2011 年开始:

    Is the iPhone Simulator UDID unique for each installed instance?

    这个答案应该是你想要的。在你的 Mac 上查看 System Profiler,id 就在那里。我刚刚在我的机器上测试,ID 匹配。

    这是您可以输入查看的确切终端命令:

    system_profiler SPHardwareDataType
    

    【讨论】:

    • 我对这里的终端命令有点困惑。它给了我我的 Mac 的设备 ID,而不是模拟器。另外,它如何根据我使用的模拟器给出不同的 ID?我想知道~/Library/Developer/CoreSimulator/Devices/[ID] 中设备路径的ID。这个答案对我有用:stackoverflow.com/a/42649929/62.
    • 2011 年添加此答案时,iPhone 模拟器的设备 ID 与 Mac 相同。模拟器存储在每个 iOS 版本的文件夹中,但都非常相似。您没有现在存在于 Xcode 中的 Simulators 窗格。从那时起,模拟器已被重构并移至新的CoreSimulator 文件夹结构,可以在其中创建多个不同的模拟器,每个模拟器都有自己的 UUID。
    • 看来这不应该再被标记为答案了。
    • 这不再是正确答案了,更新这个或接受另一个答案会更好吗? @Mrunal
    • 答案已过时。
    【解决方案2】:

    试试这个

    instruments -s devices
    

    【讨论】:

    • 看起来像 xcrun simctl list 的简短版本,我推荐 xcrun simctrl 仅当您需要更多信息时,例如关于每个模拟器实例的“启动”状态(打开窗口)。编写了一个不错的 AppleScript 来将它们重置为出厂状态(包括钥匙串)。
    • 这不是 100% 的解决方案。它显示了所有带有 uuid 的模拟器设备。它不会告诉您启动了哪些设备。 TiBooX 下面的回答显示了哪个设备已启动,但它再次没有告诉模拟器设备上运行的操作系统。
    • 感谢分享。为我工作:)
    • 运行 instruments -s devices,它说 instruments 现在已弃用,取而代之的是 'xcrun xctrace' --> xcrun xctrace list devices
    【解决方案3】:

    通常,有一个 Xcode 终端工具Xcode 工具 的一部分) 请参阅xcrun 手册页

    xcrun simctl list | egrep '(Booted)'
    

    仅列出所有已启动(可能不止一个)的模拟器 (删除 | egrep '(Booted)' 以查看所有内容)。

    UIID 结果如

     iPhone 6 Plus (AAAABD40-9DE6-44B7-A4EA-B34ABCDEFCA6) (Booted)
    

    然后,您可以在 Mac 上的 ~/Library/Developer/CoreSimulator/Devices 中查找文件夹并找到该特定模拟器的所有“物品”

    【讨论】:

    • 这不是设备 ID
    • Apple 明显区分了设备和模拟器(参见 Xcode > Window > Devices and Simulators [Devices|Simulators])上面是“模拟器标识符”。由于iOS不再让您获得“设备”ID,因此对于实际使用来调查模拟器的资源和状态,这是最好的。 (我只是解释了命令行方式)
    • 链接断开。请修复
    • 有效。我希望这个命令显示操作系统版本以及在模拟器上运行的工具 -s 设备显示。这是一个权衡。
    • @GaneshS 如果您看到我的新答案,它会为您提供操作系统和 ID。
    【解决方案4】:

    您还可以检索标记为“标识符”的相同 UDID。在 Xcode Window 菜单中,选择 Devices and Simulators: 然后选择模拟器选项卡:

    【讨论】:

      【解决方案5】:

      您可以仅搜索已启动的设备并获取 iOS 版本(与 @TiBooX 的答案不同,后者仅显示活动设备)。你也不需要使用grep,你可以使用xcrun的内置功能:

      $ xcrun simctl list 'devices' 'booted'
      

      这将打印出如下内容:

      == Devices ==
      -- iOS 10.3 --
      -- iOS 11.4 --
      -- iOS 12.4 --
      -- iOS 13.4 --
          iPhone 11 Pro (A5DEEA78-1E82-472E-B7CC-FFD27741CDA2) (Booted)
      -- tvOS 13.4 --
      -- watchOS 6.2 --
      

      我建议将以下别名添加到您的 .bashrc.zshrc

      # Get the active simulator with
      alias active-sims="xcrun simctl list 'devices' 'booted'"
      

      这样您就可以只运行active-sims 而无需每次都记住整行。

      【讨论】:

        【解决方案6】:

        Xcode -> Window -> Devices and Simulators -> 选择你想要标识符的设备(里面的细节你可以看到标识符)

        【讨论】:

          【解决方案7】:

          您可以通过导航到与您的台式机相同的主页/设置/常规/关于/序列号来直观地查看模拟器中的值。您可以通过导航到 Apple/About This Mac 并单击 OS X 下的操作系统版本号来验证这一点(显示屏将更改以指示您的 UDID - 您可能需要单击两次)。

          【讨论】:

            【解决方案8】:

            还有一种不使用命令行的方法,在这个 plist 文件 ~/Library/Developer/CoreSimulator/Devices/device_set.plist 中,它列出了所有具有 UUID 的设备。

            【讨论】:

              猜你喜欢
              • 2018-03-09
              • 2010-09-27
              • 1970-01-01
              • 2018-12-02
              • 1970-01-01
              • 1970-01-01
              • 2018-08-16
              • 2011-03-24
              • 2011-08-02
              相关资源
              最近更新 更多