升级到 Xcode 16 后,在尝试构建到设备时,我陷入“正在等待重新连接到...”

问题描述 投票:0回答:1

从最新的 Xcode 15 升级到 Xcode 16 后,我在 tvOS 17.7 上构建 Apple TV 时遇到问题(我有一个通过 USB-C 连接的旧型号,这消除了网络连接问题。)但是当我遇到以下问题时我进入“设备和模拟器”窗口:

之前的准备错误:未能找到可用于的DDI 在设备上启用 DDI 服务。通常这意味着我们最好的 DDI 可以找到没有兼容 CoreDevice 内容的平台。 从命令行运行“devicectl list PreferredDDI”以获取更多信息 有关为何找不到有效 DDI 的详细信息。

当我跑步时

devicectl list preferredDDI
我得到:

WARNING: No usable DDI found for the tvOS platform (The DDI's CoreDevice content is too old.). Best (unusable) DDI found is:
• hostDDI: file:///Library/Developer/DeveloperDiskImages/tvOS_DDI.dmg
▿ ddiMetadata:
    • buildUpdate: 15F31d
    • contentIsCompatible: false
    • coreDeviceVersionChecksIncludeDevelopmentRevision: true
    • developmentRevision: 0
    • enforcingCoreDeviceVersionChecks: true
    • platform: tvOS
    ▿ projectMetadata:
        • Citrine-25.1.1
        • CoreDevice-355.28
        • DTDeveloperDiskImageSupport-14.0.0
        • DTOCMock-22600
        • GPUToolsDevice_DDI-270.8
        • JetsamProperties-1925.120.11
        • LiveExecutionResultsLogger-19506
        • Mercury-49
        • XCTest-22720
    • incompatibleContentReason: The DDI's CoreDevice content is too old.
    • isUsable: false
    • variant: external

我已经尝试过:

  1. 确保我是最新的 macOS(但目前坚持使用 14.x Sonoma)
  2. xcode-select --switch /path/to/new/Xcode
  3. 通过 Xcode > 设置 > 组件安装最新的平台和模拟器组件
  4. 将 tvOS 从 17.7 升级到 18
  5. 禁用
    defaults write com.apple.dt.Xcode DVTEnableCoreDevice disable
    我记得为 Xcode 15 启用过
  6. 删除
    /Library/Developer/DeveloperDiskImages/
    以尝试重新触发它
  7. 确保安装了最新的 Xcode 命令行工具
  8. 重新启动 Xcode 和我的电脑

这些步骤都不起作用!请注意,当我升级到 macOS 14.7 时,我确实收到此提示:“需要软件更新才能连接”,但我收到“安装失败”和“无法安装该软件,因为当前无法从软件更新服务器获取该软件” ”。也许是因为我使用的是带有托管软件更新的工作笔记本电脑。

ios xcode tvos xcode16
1个回答
0
投票

短片

对我有用的是跑步

xcrun devicectl manage ddis update
。我能够通过运行
xcrun devicectl list preferredDDI
来验证这是否有效,这给了我以下内容:

The DDI used for the tvOS platform:
• hostDDI: file:///Library/Developer/DeveloperDiskImages/tvOS_DDI.dmg
▿ ddiMetadata:
    • buildUpdate: 16A242d
    • contentIsCompatible: true
    • coreDeviceVersionChecksIncludeDevelopmentRevision: true
    • developmentRevision: 0
    • enforcingCoreDeviceVersionChecks: true
    • platform: tvOS
    ▿ projectMetadata:
        • Citrine-94
        • CoreDevice-397.21
        • DTDeveloperDiskImageSupport-14.0.0
        • DTOCMock-23002
        • GPUToolsDevice_DDI-300.21
        • JetsamProperties-2205
        • LiveExecutionResultsLogger-20002
        • Mercury-54
        • XCTest-23196
    • isUsable: true
    • variant: external

我重新启动了 Xcode,下载设备数据后它就可以工作了

Xcode 16 在 DDI 上进行了扩展——我假设是“开发人员磁盘映像”——这将在 Xcode 15 中首次引入:

在 iOS 17+ 中,我们使用新的设备堆栈 (CoreDevice) 来 与设备通信。有了这个新的设备堆栈,就有一个 DDI 每个平台(而不是每个操作系统版本)。这个相同的设备堆栈 将在您系统上的所有 Xcode 版本之间共享,并且 安装较新版本的 Xcode 将更新 CoreDevice 及其 DDI。

来源:https://forums.developer.apple.com/forums/thread/730947

Xcode 16 发行说明提到:

devicectl 现在提供命令来管理 Mac 上存在的开发人员磁盘映像。

所以我认为这是 Xcode 的一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.