ios - 修改 Cocoapods 生成的 .xcconfig 文件的脚本
问题描述
如何修改OTHER_LDFLAGS
pod install 步骤生成的 .xcconfig 中的字段?
最终目标:仅弱链接某些 Pod,因此它们可以dlopen
在运行时加载。
我注意到在Pod-Target.debug.xcconfig
pod install 的生成中,它有这个:OTHER_LDFLAGS = $(inherited) -framework "AFNetworking"
,如果我把它改成-weak_framework
,它会做我想做的事。
这个Cocoapods 问题讨论了通过 post_install 挂钩执行此操作,但config.build_settings['OTHER_LDFLAGS']
不写入该文件。
PS:我知道dlopen
不推荐使用,但是我正在使用冲突的硬件库,我不能同时加载两个。
解决方案
将此代码添加到您的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
推荐阅读
- python-3.x - 无法从 kdeplot 读取数据
- android - 将 arraylist.map() 与 kotlin 协程一起使用时出现 ArrayIndexOutOfBoundsException
- kubernetes - 使用 Kind: deployment 限制 Kubernetes 中 Pod 的首次部署
- java - Java内存模型和局部变量
- r - R中的system/system2命令
- go - go 1.16 embed - 去除目录名
- flutter - flutter/cloud firestore:如何从文档中只获取一个数据?
- css - SVG 在 WP Elementor 中有两种颜色作为徽标
- java - 为什么我使用 Netty 在此端口上创建了 UDP 监视器时端口的状态未侦听?
- javascript - 进行更改时,如何更新我的 serviceworker 脚本以更新缓存页面?