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

Flutter Firebase iOS项目编译报错:缺失BoringSSLRPC的Info.plist文件

Flutter Firebase iOS项目编译报错:缺失BoringSSLRPC的Info.plist文件

我之前也碰到过这个糟心的编译错误,这本质是CocoaPods在处理BoringSSLRPC依赖时,没有正确生成对应的Info.plist资源文件导致的。结合你已经尝试的操作,我给你补充几个更精准的解决方向,亲测有效:

方法一:优化你已有的Podfile脚本配置

你添加的Shell脚本思路是对的,但可能位置或者细节需要调整,确保脚本能在正确的时机生成文件:

  1. 打开项目的ios/Podfile,把你现有的BoringSSLRPC相关代码替换成下面的完整配置,确保放在post_install do |installer|块内部:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 处理BoringSSLRPC的Info.plist缺失问题
    if target.name == 'BoringSSLRPC'
      # 先移除可能存在的旧构建阶段(避免重复)
      target.build_phases.each do |phase|
        if phase.display_name == 'Create BoringSSLRPC Info.plist'
          phase.remove_from_project
        end
      end

      # 添加新的Shell脚本构建阶段
      phase = target.new_shell_script_build_phase("Create BoringSSLRPC Info.plist")
      phase.shell_script = <<-SCRIPT
        mkdir -p "${BUILT_PRODUCTS_DIR}/BoringSSLRPC.bundle"
        cat > "${BUILT_PRODUCTS_DIR}/BoringSSLRPC.bundle/Info.plist" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleExecutable</key>
  <string>BoringSSLRPC</string>
  <key>CFBundleIdentifier</key>
  <string>org.cocoapods.BoringSSLRPC</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>BoringSSLRPC</string>
  <key>CFBundlePackageType</key>
  <string>BNDL</string>
  <key>CFBundleShortVersionString</key>
  <string>1.0</string>
  <key>CFBundleVersion</key>
  <string>1</string>
</dict>
</plist>
EOF
      SCRIPT

      # 调整构建设置,确保bundle能被正确识别
      target.build_configurations.each do |config|
        config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'org.cocoapods.BoringSSLRPC'
        config.build_settings['PRODUCT_NAME'] = 'BoringSSLRPC'
        config.build_settings['WRAPPER_EXTENSION'] = 'bundle'
        config.build_settings['SKIP_INSTALL'] = 'NO'
        config.build_settings['GENERATE_INFOPLIST_FILE'] = 'NO' # 禁止自动生成,用我们的自定义文件
      end
    end

    # 保留你原本的其他Flutter相关配置(比如Firebase的配置)
    flutter_additional_ios_build_settings(target)
  end
end
  1. 执行彻底的清理和重建操作,顺序别错:
flutter clean
cd ios
rm -rf Pods Podfile.lock *.xcworkspace
flutter pub get
pod install --repo-update
cd ..
flutter build ios

方法二:降级或调整Firebase依赖版本

有时候这个问题是特定版本的Firebase依赖和BoringSSLRPC的兼容性问题,你可以尝试微调Firebase的版本号:

  • 打开pubspec.yaml,把Firebase相关依赖调整为稍微旧一点的稳定版本,比如:
    firebase_core: ^2.24.2
    firebase_auth: ^4.14.1
    cloud_firestore: ^4.11.0
    firebase_storage: ^11.3.1
    
  • 然后重复上面的清理重建步骤,看是否能解决问题。

方法三:手动在Xcode中添加构建阶段

如果Podfile的脚本还是不生效,你可以直接在Xcode中手动配置:

  1. 打开ios/Runner.xcworkspace,在左侧导航栏找到Pods -> Targets -> BoringSSLRPC
  2. 切换到Build Phases标签,点击左上角的+号,选择New Run Script Phase
  3. 把这个新的Run Script阶段拖到Compile Sources的上方,命名为Create BoringSSLRPC Info.plist
  4. 在脚本输入框中粘贴下面的内容:
mkdir -p "${BUILT_PRODUCTS_DIR}/BoringSSLRPC.bundle"
cat > "${BUILT_PRODUCTS_DIR}/BoringSSLRPC.bundle/Info.plist" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleExecutable</key>
  <string>BoringSSLRPC</string>
  <key>CFBundleIdentifier</key>
  <string>org.cocoapods.BoringSSLRPC</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>BoringSSLRPC</string>
  <key>CFBundlePackageType</key>
  <string>BNDL</string>
  <key>CFBundleShortVersionString</key>
  <string>1.0</string>
  <key>CFBundleVersion</key>
  <string>1</string>
</dict>
</plist>
EOF
  1. 然后切换到Build Settings标签,搜索Info.plist File,把它的值清空,或者设置为我们脚本生成的路径$(BUILT_PRODUCTS_DIR)/BoringSSLRPC.bundle/Info.plist
  2. 最后执行清理重建操作。

额外注意事项

  • 确保你的Xcode版本是最新的稳定版(比如15.0以上),旧版本的Xcode可能对新的CocoaPods配置支持不好
  • 确认你的iOS Deployment Target确实设置为13.0及以上,在Podfile和Xcode中保持一致
  • 如果你用的是M系列芯片的Mac,确保在执行pod install时没有架构兼容问题,必要时可以加arch -x86_64 pod install(不过现在大部分新版本CocoaPods已经支持原生ARM了)

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:14:53