首页 > 解决方案 > 修改 Cocoapods 生成的 .xcconfig 文件的脚本

问题描述

如何修改OTHER_LDFLAGSpod install 步骤生成的 .xcconfig 中的字段?

最终目标:仅弱链接某些 Pod,因此它们可以dlopen在运行时加载。


我注意到在Pod-Target.debug.xcconfigpod install 的生成中,它有这个:OTHER_LDFLAGS = $(inherited) -framework "AFNetworking",如果我把它改成-weak_framework,它会做我想做的事。

这个Cocoapods 问题讨论了通过 post_install 挂钩执行此操作,但config.build_settings['OTHER_LDFLAGS']不写入该文件。


PS:我知道dlopen不推荐使用,但是我正在使用冲突的硬件库,我不能同时加载两个。

标签: ioscocoapodsxcconfig

解决方案


将此代码添加到您的Podfilepod install再次运行

post_install do |installer|
    workDir = Dir.pwd
    xcconfigFilename = "#{workDir}/Pods/Target Support Files/Pods-Target/Pod-Target.debug.xcconfig"
    xcconfig = File.read(xcconfigFilename)
    newXcconfig = xcconfig.gsub(/-framework "AFNetworking"/, "-weak_framework \"AFNetworking\"")
    File.open(xcconfigFilename, "w") { |file| file << newXcconfig }
end

推荐阅读