Flutter项目中如何仅静态链接指定Pod(Google-Mobile-Ads-SDK)
仅为Google-Mobile-Ads-SDK配置静态链接(Flutter iOS项目)
你遇到的错误是因为:linkage => :static是use_frameworks!的全局配置参数,不能直接附加在单个Pod的声明里。要单独指定该SDK静态链接,需通过CocoaPods的post_install钩子修改目标Pod的编译配置,具体操作如下:
修改Podfile基础配置
保留全局的use_frameworks!(让其他Pods保持默认动态链接),正常引入Google-Mobile-Ads-SDK,不要额外添加linkage参数:# 保持其他Pods默认动态链接 use_frameworks! # 正常引入广告SDK,不附加linkage参数 pod 'Google-Mobile-Ads-SDK' # 保留Flutter默认的Pod安装脚本 flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))添加post_install钩子单独配置静态链接
在Podfile末尾添加post_install块,遍历所有Pod目标,找到Google-Mobile-Ads-SDK后将其设置为静态框架:post_install do |installer| installer.pods_project.targets.each do |target| # 匹配目标SDK if target.name == 'Google-Mobile-Ads-SDK' target.build_configurations.each do |config| # 强制设置为静态框架 target.static_framework = true # 添加ObjC链接标记(广告SDK通常需要这个) config.build_settings['OTHER_LDFLAGS'] = '-ObjC' end end end # 保留Flutter的post_install回调(如果有) flutter_post_install(installer) if defined?(flutter_post_install) end重新安装Pods
在项目的iOS目录下执行以下命令,让配置生效:pod deintegrate pod install
完成后,只有Google-Mobile-Ads-SDK会被静态链接,其他Pods依然保持动态链接,可避免依赖冲突报错。
内容的提问来源于stack exchange,提问作者Tom3652
相关产品推荐
相关产品推荐

