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

Flutter应用Xcode15生成隐私报告时第三方SDK隐私清单未被包含求助

解决Flutter项目Xcode15生成隐私报告遗漏第三方SDK隐私清单的问题

核心原因

Flutter默认以静态链接方式集成CocoaPods依赖,静态库的PrivacyInfo.xcprivacy不会被Xcode隐私报告工具自动检测;手动将Pod添加到Embedded Content会破坏Flutter项目结构,导致构建失败。

解决方案

方法1:通过Podfile钩子自动收集静态库隐私清单到主APP资源

修改项目根目录下的Podfile,在post_install钩子中添加自动收集逻辑,将所有Pods的PrivacyInfo.xcprivacy添加到Runner target的资源中:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 跳过Flutter相关target,避免重复处理
    next if target.name.start_with?('Flutter')
    
    # 查找当前Pod下的隐私清单文件
    privacy_files = Dir.glob("#{target.project.path}/../#{target.name}/**/PrivacyInfo.xcprivacy")
    next if privacy_files.empty?
    
    # 获取Runner target
    runner_target = installer.pods_project.targets.find { |t| t.name == 'Runner' }
    next unless runner_target
    
    privacy_files.each do |file_path|
      # 避免重复添加同一文件
      unless runner_target.resources_build_phase.files.any? { |f| f.file_ref.path == file_path }
        resource_file = runner_target.new_file(file_path)
        runner_target.resources_build_phase.add_file_reference(resource_file)
      end
    end
  end

  # 保留原有的Flutter post_install配置
  flutter_post_install(installer) if defined?(flutter_post_install)
end

修改完成后,执行以下命令更新Pods:

cd ios
pod install

方法2:切换为动态框架集成(谨慎使用)

若第三方SDK支持动态链接,可修改Podfile启用动态框架:

# 替换原有的use_frameworks!配置
use_frameworks! :linkage => :dynamic

执行pod install后重新归档。注意:部分Flutter插件可能不支持动态框架,会引发构建失败,需提前测试。

验证步骤

  1. 清理Xcode构建缓存:按下Command + Shift + K,并删除DerivedData目录(可通过Xcode偏好设置->Locations找到)
  2. 重新执行pod install
  3. 进行Archive构建,再次点击「Generate Privacy Report」

此时第三方SDK的隐私清单应会被纳入报告中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:33:45