You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14.0.1中WidgetKit扩展SwiftUI预览报错:需嵌入主应用

解决Widget Extension SwiftUI预览报错:AppExtensionNeedsContainingAppError

针对你遇到的问题——Widget Extension能正常编译运行在watchOS模拟器,但SwiftUI预览报AppExtensionNeedsContainingAppError,本质是Xcode预览系统无法自动识别Extension的宿主App关联,以下是具体解决步骤:

  • 检查Extension的嵌入配置

    1. 选中你的MyWatchExtension目标,进入「General」标签页
    2. 在「Embedded Binaries」区域,确认已将该Extension添加到对应的Watch App目标中(若未添加,点击+号选择你的Watch App)
    3. 切换到Watch App的「General」标签,检查「Embedded App Extensions」列表是否包含MyWatchExtension,确保双向关联正确
  • 明确预览的宿主上下文

    1. 打开Widget的SwiftUI文件,修改预览代码,指定预览设备并确保关联到Watch App:
      struct MyWidget_Previews: PreviewProvider {
          static var previews: some View {
              MyWidgetEntryView(entry: SimpleEntry(date: Date(), configuration: ConfigurationIntent()))
                  .previewContext(WidgetPreviewContext(family: .accessoryCircular))
                  .previewDevice(PreviewDevice(rawValue: "Apple Watch Series 8 - 45mm"))
                  .previewDisplayName("Apple Watch Series 8")
          }
      }
      
    2. 也可以在Xcode顶部的运行目标选择器中,先选中你的Watch App作为当前运行目标,再触发预览
  • 清理缓存并重启Xcode

    1. 使用Cmd+Shift+K清理项目构建缓存
    2. 关闭Xcode,删除Derived Data文件夹(可通过Xcode偏好设置→Locations找到对应路径)
    3. 重新打开项目,再次尝试预览

内容的提问来源于stack exchange,提问作者jaltair9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:40:41