无法获取 extensionBundleID 的描述符

Posted

技术标签:

【中文标题】无法获取 extensionBundleID 的描述符【英文标题】:Failed to get descriptors for extensionBundleID 【发布时间】:2020-06-28 16:48:14 【问题描述】:

将扩展目标添加到 Xcode 项目并尝试在 ios 14 上运行后,我收到错误消息:

SendProcessControlEvent:toPid: encountered an error: Error Domain=com.apple.dt.deviceprocesscontrolservice Code=8 "Failed to show Widget '***' error: Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (***)" UserInfo=NSLocalizedDescription=Failed to get descriptors for extensionBundleID (***)." UserInfo=NSLocalizedDescription=Failed to show Widget '***' error: Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (***)" UserInfo=NSLocalizedDescription=Failed to get descriptors for extensionBundleID (***)., NSUnderlyingError=0x7f9bac015910 Error Domain=SBAvocadoDebuggingControllerErrorDomain Code=1 "Failed to get descriptors for extensionBundleID (***)" UserInfo=NSLocalizedDescription=Failed to get descriptors for extensionBundleID (***) Domain: DTXMessage Code: 1

知道出了什么问题吗?

【问题讨论】:

这很烦人,但重新启动我的 iPhone 确实让它对我有用... 【参考方案1】:

我解决了这个问题。 清理 Builder 文件夹(也许没有必要),然后重新启动你的 iPhone。再次运行您的项目。

【讨论】:

哇,重启我的设备是关键。 Baby SwiftUI 需要照顾。【参考方案2】:

对我来说,问题是在小部件目标构建设置中为 any iOS simulator 排除的 arm64 架构(由于我的 M1 开发设备而添加)。

当移除这个排除的架构时,小部件运行没有任何问题。

【讨论】:

【参考方案3】:

对我来说,我的设备运行的是 iOS 14.1,并且小部件目标的部署目标设置为 14.3。解决方案是更新部署目标以匹配您的设备或更低版本。部署目标设置位于常规选项卡和部署信息下(在我的情况下,我将其设置为 14.0)。

【讨论】:

或者,在您的设备上更新到最新的 iOS 版本! (不是每个团队都可以轻松更改他们的最小部署目标,所以,只是另一个角度)【参考方案4】:

如果您添加的扩展目标用于小部件...

我确实遵循了这里的一些建议并重新启动了我的手机并取得了一些成功,但错误不断发生,并且重新启动我的手机具有侵入性并且需要很长时间。对我来说,当我收到此弹出错误时,解决方法是......

1.在我的 iPhone 上,我找到了我正在处理的小部件,然后按住小部件直到它让我可以选择从我的设备中删除它。

2。在 Xcode 中,我再次构建并运行 Widget Scheme,不再出现错误!

速度有点快,而且我不用重启手机。

注意:如果由于某种原因不起作用,我将我的构建方案切换回我的 iPhone 方案,构建并运行,然后将方案改回我的小部件方案,这通常可以解决问题。

【讨论】:

【参考方案5】:

尝试进入设置 -> 常规 -> 配置文件和设备管理 -> 信任您的证书, 然后重建并重新运行应用程序。

【讨论】:

【参考方案6】:

如果您的目标中有 2 个小部件,请注释掉您当前未测试的小部件

@main
struct Widgets: WidgetBundle

    @WidgetBundleBuilder
    var body: some Widget
    
        Widget1()
//        Widget2()
    

【讨论】:

【参考方案7】:

这发生在我将我的权利文件从根目录移动到小部件目录后。我试过this answer,但问题仍然存在。

我必须在主屏幕上手动安装小部件。之后从 Xcode 运行再次工作。

【讨论】:

【参考方案8】:

我遇到了完全相同的问题。

对我来说,当我从 M1 计算机运行扩展小部件时会发生这种情况。

原来问题是我用 Rosetta 运行 Xcode,关闭它为我解决了问题。

启用/禁用罗塞塔:

    右键单击 Xcode 应用程序 点击Get Info 取消勾选Open using Rosetta 清理项目 => 重启 Xcode

【讨论】:

【参考方案9】:

正如这里提到的https://developer.apple.com/forums/thread/651611,在 File -> Workspace/Project settings 中设置 New Build System(对于 SharedPer User 设置)似乎可以解决问题。您不会摆脱警告,但小部件可能(见注释)会运行。

注意 1 - 即使在此更改之后,它似乎也有大约 30% 的机会不会运行。只需再次点击运行?‍♂️。 (Debug Navigator 卡在 Waiting to Attach

注意 2 - 有时这并不完全有效。将 Build System 设置为 Legacy 并返回到 New 对我有用 ?‍♂️。

注意 3 - 目前在设备上运行没有这些问题(iOS 14 beta 7)

在 Xcode 12 beta v6 上测试。

【讨论】:

以上是关于无法获取 extensionBundleID 的描述符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSFL 中获得符号的描边边界?

请问如何用css实现字体的描边效果。类似photoshop中文字的描边效果

普通的css普通的描边字

通过 CSS 更改 svg 的描边颜色

iPhone:单独的描边和填充不起作用

无法在数组类型 PSShape[] 上调用 disableStyle()