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

Flutter iOS归档报错:Xcode15.4下GTMSessionFetcher文件生成冲突

解决Xcode15.4下Flutter iOS归档的GTMSessionFetcher重复生成错误

以下是针对你遇到的重复生成GTMSessionFetcher_Core_Privacy.bundle和GTMSessionFetcher.framework问题的可行解决方案,按优先级尝试:

  • 启用Xcode多命令输出允许选项
    打开Xcode的Runner项目,进入Build Settings,搜索Allow Multiple Command Outputs,将其值设置为YES。这个是Xcode15新增的配置,专门用来解决同一输出文件被多个编译命令生成的冲突问题,很多开发者反馈这个能直接解决该类归档报错。

  • 彻底清理并重新构建依赖

    1. 执行命令彻底移除Pods:pod deintegrate
    2. 删除Podfile.lock和Pods文件夹
    3. 执行flutter clean清理Flutter构建缓存
    4. 重新安装Pods:pod install
    5. 最后尝试归档操作
  • 排查并修复Pod依赖重复引入

    1. 打开Podfile.lock,搜索GTMSessionFetcher,查看有哪些依赖间接引入了这个库,是否存在版本不一致的情况
    2. 如果发现多个依赖引用了不同版本,可在Podfile中显式指定统一版本,比如:
      pod 'GTMSessionFetcher', '~> 2.3.0'
      
    3. 执行pod update GTMSessionFetcher更新到指定版本后重新构建
  • 用Post-Install脚本移除重复资源
    在Podfile末尾添加以下脚本,自动清理Pods项目中重复的Bundle和Framework引用:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        # 遍历所有Pods目标,移除重复的GTMSessionFetcher相关资源
        target.build_phases.each do |phase|
          if phase.name == 'Copy Bundle Resources'
            phase.files.reject! { |file| file.display_name == 'GTMSessionFetcher_Core_Privacy.bundle' }
          elsif phase.is_a?(Xcodeproj::Project::Object::PBXFrameworksBuildPhase)
            phase.files.reject! { |file| file.display_name == 'GTMSessionFetcher.framework' }
          end
        end
      end
    end
    

    添加后执行pod install,再尝试归档

  • 升级Flutter到适配Xcode15.4的版本
    确保你的Flutter版本是最新稳定版(建议3.16及以上),Flutter团队针对Xcode15系列的编译问题做了不少修复,执行flutter upgrade升级后重新构建项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:41:13