You need to enable JavaScript to run this app. iOS 13能否运行WidgetKit代码?低版本系统小组件适配开发问询
优惠活动
大模型
产品
解决方案
定价
更多

iOS 13能否运行WidgetKit代码?低版本系统小组件适配开发问询

问题核心结论

WidgetKit是iOS 14及以上才提供的系统框架,不可能兼容iOS 13系统,你尝试下调WidgetKit target部署版本的操作从根本上无法实现,'main()' is only available in application extensions for iOS 14.0 or newer属于系统级硬限制,添加@available注解无法解决。
报错截图

可行解决方案

你提到的「Xcode 12已不再支持Today's Widget」属于认知误区,Xcode 12.4完整保留了Today Extension(iOS 10~iOS13系统的官方小组件实现)的创建、编译、调试能力,你可以通过双Extension共存的方案满足全版本需求:

  • 保留现有部署目标为iOS14的WidgetKit target,专供iOS14及以上系统用户使用
  • 新增一个Today Extension target,部署目标设为iOS13,专供iOS13系统用户使用,两个target完全独立互不干扰
  • 可将小组件共用的数据源、UI渲染逻辑封装为公共组件库,同时供两个Extension target依赖,避免重复开发
操作注意事项
  • 创建Today Extension的路径:Xcode菜单栏点击File > New > Target,左侧分类选择iOS > Application Extension,找到Today Extension选项即可创建
  • 系统会自动识别适配不同版本的Extension:iOS13设备只会加载Today Extension,iOS14及以上设备可同时识别两种Extension,你可在主App内引导用户优先添加体验更好的WidgetKit组件
  • 如果现有Widget用SwiftUI开发,大部分基础SwiftUI API都兼容iOS13,仅需对iOS14+专属API添加@available(iOS 14.0, *)注解即可实现逻辑复用

内容的提问来源于stack exchange,提问作者Josh Byanec McFergan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 18:27:00