如何修改在pod安装步骤生成的.xcconfig中的OTHER_LDFLAGS
字段?
最终目标:仅弱链接某些Pod,因此可以在运行时用dlopen
加载它们。
我在pod安装时生成的Pod-Target.debug.xcconfig
中注意到,它具有以下内容:OTHER_LDFLAGS = $(inherited) -framework "AFNetworking"
,如果我将其更改为-weak_framework
,它可以完成我想做的事情。
This Cocoapods发行版讨论如何通过安装后挂钩来实现此目的,但是config.build_settings['OTHER_LDFLAGS']
不会写入该文件。
PS:我知道不建议使用dlopen
,但是我正在使用相互冲突的硬件库,在这些库中我无法同时加载两个。
答案 0 :(得分:0)
将此代码添加到您的?- {html}.
...
% (0 warnings)
true.
?- html::get_url('http://releases.llvm.org/6.0.0/tools/clang/docs/ClangCommandLineReference.html', Terms).
Terms = [element(html, [xmlns='http://www.w3.org/1999/xhtml'], [element(head, [], [element(meta, ['http-equiv'='Content-Type', content='text/html; charset=utf-8'], []), element(title, [], ['Clang command line argument reference — Clang 6 documentation']), element(link, [... = ...|...], []), element(link, [...|...], []), element(..., ..., ...)|...]), element(body, [role=document], [' ', element(div, [... = ...|...], [element(..., ..., ...)|...]), '\n ', element(..., ..., ...)|...])])].
中,然后再次运行Podfile
pod install
答案 1 :(得分:0)
对VoidLess答案的一些修改,我认为这可能是有用的:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/-framework "YourFramework"/, "-weak_framework \"YourFramework\"")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
end
end
end