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

SwiftUI应用兼容Mac时如何仅为iOS保留ActivityKit扩展?

解决ITMS-90863报错:仅为iOS保留ActivityKit Widget且保留Mac支持

核心思路

ActivityKit框架仅在iOS/iPadOS平台提供,因此只需让Widget扩展仅针对iOS/iPadOS编译,主App仍保留Mac平台支持,即可避免链接不存在的框架。

具体操作步骤

1. 限制Widget扩展的部署平台

  • 在Xcode中选中你的Widget扩展目标(例如YourAppWidgetExtension)
  • 切换到General标签页,找到Deployment Info区域
  • 取消勾选macOS选项,仅保留iOS(默认iOS已包含iPadOS支持)

2. 配置主App的框架链接(若主App引用了ActivityKit)

如果主App代码里也调用了ActivityKit相关逻辑,需做以下处理:

  • 选中主App目标,进入Build Phases -> Link Binary With Libraries
  • 找到ActivityKit.framework,将其Status从Required修改为Optional
  • 在调用ActivityKit的代码前添加平台判断:
    import ActivityKit
    
    if #available(iOS 16.1, *) {
        // 此处编写ActivityKit相关逻辑,例如创建Live Activity
    }
    

3. 验证与打包

  • 执行Cmd + Shift + K清理项目后重新编译
  • 尝试打包提交App Store,确认报错不再出现

额外注意事项

  • 检查Widget扩展的Info.plist,确保没有包含Mac相关的配置项,比如NSExtension的属性中不要添加Mac适配设置
  • 分别在iOS和Mac设备上测试主App功能,确保Mac端功能不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:07:03