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

Xcode 14.XX添加Widget扩展后报错:多命令冲突及框架缺失怎么解决?

适配iOS16动态岛Widget扩展的编译错误解决办法

一、解决“Multiple commands produce”错误

这个错误通常源于资源或配置文件重复,按以下步骤排查修复:

  • 检查两个Widget Extension的Info.plist,确保它们的CFBundleIdentifier完全唯一,不能与主工程、已有Widget重复。
  • 进入Xcode的Build Phases -> Copy Bundle Resources,逐个核查主工程和两个Widget扩展的资源列表,移除重复添加的文件(比如图片、本地化文件等)。
  • 清理Xcode缓存:按下Cmd+Shift+K清理构建文件夹,再按Cmd+Option+Shift+K清除Derived Data,之后重启Xcode再尝试编译。

二、解决“Framework not found FirebaseCore”错误

这个问题是新Widget Extension未正确引入Firebase依赖导致的,处理方式如下:

  1. 更新Podfile配置
    打开项目根目录的Podfile,确保新的Widget Extension目标被添加到Pod配置中,示例如下:

    target 'YourMainApp' do
      use_frameworks!
      pod 'Firebase/Core'
      pod 'Firebase/Crashlytics'
      # 主工程其他依赖
    end
    
    target 'ExistingWidget' do
      use_frameworks!
      pod 'Firebase/Core'
      pod 'Firebase/Crashlytics'
      # 已有Widget的依赖
    end
    
    target 'DynamicIslandWidget' do
      use_frameworks!
      pod 'Firebase/Core'
      pod 'Firebase/Crashlytics'
      # 新Widget的依赖
    end
    

    保存后在终端执行pod install,让CocoaPods把Firebase框架安装到新Widget目标中。

  2. 检查Build Settings配置
    选中新Widget Extension目标,进入Build Settings:

    • 找到Framework Search Paths,确认包含$(inherited)和${PODS_ROOT}/FirebaseCore/Frameworks(CocoaPods通常会自动配置,若缺失手动添加)。
    • 找到Other Linker Flags,确保包含$(inherited),这会自动继承Pods的链接配置。
  3. 配置Crashlytics脚本(如果用到)
    若新Widget需要Crashlytics支持,进入目标的Build Phases,添加Run Script,内容和主工程、已有Widget保持一致:

    "${PODS_ROOT}/FirebaseCrashlytics/run"
    

    同时勾选"Run script only when installing"选项,避免不必要的运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:25:28