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

多Target项目中Widget扩展预览失败(CHSErrorDomain 1300: extensionNotFound)求助

多Target项目中Widget扩展预览失败(CHSErrorDomain 1300: extensionNotFound)求助

我之前维护多Target项目时也碰到过一模一样的问题,折腾了好一阵才搞定,给你分享几个亲测有效的排查和修复步骤:

  • 检查Widget Target的部署目标:
    Widget从iOS14才开始支持,所以你的Widget扩展Target的Minimum Deployment必须单独设置为14.0及以上,主APP Target保留13.0完全没问题(系统会自动在iOS13设备上忽略这个扩展)。操作路径:选中Widget Target → 「General」标签 → 「Deployment Info」,确认iOS版本设置正确,别和主Target的配置同步错了。

  • 严格核对Bundle ID与签名配置:
    Widget的Bundle ID必须是主APP Bundle ID的后缀形式,比如主APP是com.company.AppName,Widget就得是com.company.AppName.WidgetName,这个对应关系错了系统肯定找不到扩展。另外要保证Widget Target的签名和主APP完全一致——如果用自动管理签名,就都开「Automatically manage signing」;如果手动配置,证书、Provisioning Profile得一一匹配,多Target很容易在这步搞混。

  • 切换到正确的Scheme预览:
    很多时候是Scheme选错了!你要预览Widget,必须在Xcode顶部的Scheme下拉框里选中Widget扩展对应的Scheme,而不是主APP的Scheme。选对Scheme后再点击预览按钮试试。

  • 清理缓存重启大法:
    这个虽然老套但经常救急:先按Cmd+Shift+K清理Build Folder,然后去Xcode的「Settings」→「Locations」找到Derived Data的路径,手动删掉整个文件夹,接着重启Xcode和你用的模拟器/真机,重新构建预览。

  • 验证Info.plist配置:
    打开Widget Target的Info.plist,检查这几个关键配置:

    • NSExtension → NSExtensionAttributes → NSExtensionPointIdentifier必须是com.apple.widgetkit-extension,不能填错
    • 如果用Storyboard创建Widget,确认NSExtensionMainStoryboard的名称正确;如果是纯代码创建的,NSExtensionPrincipalClass要指向你的WidgetProvider类,别拼写错误

另外你担心的主APP最低版本iOS13的问题,其实不是这个报错的原因,不用为了Widget去升级主APP的最低版本。如果上面的步骤都试过还是不行,可以临时建一个单Target项目加Widget测试,排除是不是你的多Target项目有深层的构建设置继承冲突。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 10:44:33