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

如何仅在Release构建中启用CocoaPods的use_frameworks!?

解决方案:完全可以实现你的需求

通过在Podfile中根据构建环境做条件判断,就能分别配置Debug和Release模式的依赖:

修改后的Podfile关键部分

pod_folder = Pathname.new(__FILE__).dirname.realpath

require File.join(File.dirname(`cd #{pod_folder} && node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`cd #{pod_folder} && node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
require File.join(File.dirname(`cd #{pod_folder} && node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")

platform :ios, '13.0'
install! 'cocoapods', :deterministic_uuids => false

# 读取Xcode构建配置判断环境,也可保留你原有的PRODUCTION环境变量逻辑
is_debug = ENV['CONFIGURATION'] == 'Debug'
is_release = ENV['CONFIGURATION'] == 'Release'

target 'MyApp' do
  use_expo_modules!

  # 仅在Release模式下启用RN Firebase需要的静态框架配置
  if is_release
    use_frameworks! :linkage => :static
    $RNFirebaseAsStaticFramework = true
  end
  
  use_react_native!(
    :path => config[:reactNativePath],
    :production => is_release,
    :hermes_enabled => true,
    :fabric_enabled => flags[:fabric_enabled],
    # Debug模式启用Flipper,Release模式直接禁用
    :flipper_configuration => is_debug ? FlipperConfiguration.enabled(['Debug'], { 'Flipper' => '0.157.0' }) : FlipperConfiguration.disabled,
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  # 仅在Release模式下添加RN Firebase相关依赖
  if is_release
    # 按需添加你的RN Firebase模块,示例:
    pod 'Firebase/Core'
    pod 'Firebase/Auth'
    # 其他Firebase模块...
  end

  # 保留原有其他配置...
end

核心逻辑说明

  • 环境隔离:通过Xcode原生的构建配置变量区分Debug/Release,避免自定义变量的额外配置成本,也可替换回你原有的PRODUCTION环境变量逻辑。
  • 依赖拆分:Release模式单独启用use_frameworks!并引入RN Firebase,Debug模式跳过这些配置,确保Flipper正常运行。
  • 彻底解耦:两种模式的依赖完全独立,不会出现交叉冲突。

验证方法

  • 执行Debug构建:pod install --configuration=Debug,查看Podfile.lock确认Flipper存在、Firebase无相关条目。
  • 执行Release构建:pod install --configuration=Release,查看Podfile.lock确认Firebase存在、Flipper被禁用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:42:52