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

现有watchOS项目添加Widget Extension预览崩溃问题求助

解决watchOS Widget Extension预览报错及崩溃问题

1. 撤销错误的Target Membership操作

先取消Widget Extension文件的「MyProject WatchKit Extension」Target Membership勾选——Widget Extension是独立的应用扩展,不能直接归属到WatchKit Extension的目标下,这是触发崩溃的直接原因。

2. 修正Embed目标配置

打开Widget Extension的Target设置 → 「General」标签,找到「Embed in Application」下拉菜单,确认选择的是Watch App目标(即带.app后缀的目标,而非WatchKit Extension)。watchOS的Widget/Complication扩展必须嵌入到Watch App中,而非WatchKit Extension。

3. 处理版本兼容性问题

你的主应用部署目标为watchOS 6.1,但Widget Extension要求最低watchOS 9.0,需做好以下配置:

  • 确保Widget Extension的Target设置中,「Deployment Info」的「Target」为watchOS 9.0;
  • 保持WatchKit Extension和Watch App的部署目标为6.1不变,同时确认Widget Extension的Info.plist中MinimumOSVersion值为9.0;
  • 保留已添加的@available(watchOS 9.0, *)修饰符,确保Widget仅在符合版本要求的设备上加载。

4. 修复预览配置与清理项目

  • 调整预览代码,明确指定适配的watchOS设备,示例:
    struct MyWidget_Previews: PreviewProvider {
        static var previews: some View {
            MyWidgetEntryView(entry: SimpleEntry(date: Date()))
                .previewContext(WidgetPreviewContext(family: .systemSmall))
                .environment(\.previewDevice, PreviewDevice(rawValue: "Apple Watch Series 8 (45mm)"))
        }
    }
    
  • 执行清理操作:按Cmd+Shift+K清理构建文件夹,再按Cmd+Option+Shift+K清理派生数据,重启Xcode后重新尝试预览。

5. 排查Info.plist配置错误

崩溃日志提到XPC服务字典问题,需检查Widget Extension的Info.plist:

  • 确认NSExtension字典下的NSExtensionPointIdentifier值正确:
    • 普通Widget:com.apple.widgetkit-extension
    • Complication:com.apple.watchkit.complication
  • 删除Info.plist中多余的XPC相关配置项(如果存在),避免干扰扩展加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:37:31