修改Cocoapods生成的.xcconfig文件的脚本

Lor*_*olt 5 xcconfig ios cocoapods

如何修改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,但是我正在使用冲突的硬件库,我不能同时加载两个。

小智 5

将此代码添加到您的并再次Podfile运行pod 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
Run Code Online (Sandbox Code Playgroud)