Cocoapods "OTHER_LDFLAGS " 符号重复,因为 -all_load
Cocoapods "OTHER_LDFLAGS " Duplicate symbols because of -all_load
我的应用程序使用供应商静态库,它不喜欢“-all_load”链接器标志。如果我使用它,它会抛出重复的错误。
我现在遇到的问题是我还需要使用新的 box sdk。 SDK 的 podspec 有以下内容。
s.xcconfig = { "OTHER_LDFLAGS" => "-ObjC -all_load" }
因此,构建失败,供应商库中有重复的符号。
我在网上看到,我可以通过仅在需要 -ObjC -all_load
的库上使用 -force_load
来避免陷入这种情况。我无法将其用作解决方案,因为我无法控制 BOX podspec
有什么方法可以覆盖我的应用程序中的任何这些吗?如果有任何帮助,我将不胜感激。
在与此斗争了几个小时之后,我想出了如何完成这项工作。将其张贴在这里,以便它可以帮助遇到类似问题的人。我在 Podfile 中添加了下面的 post_install 钩子,结果它起作用了!!
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == "Pods"
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
new_xcconfig = xcconfig.gsub("-ObjC -all_load",'-force_load $(BUILT_PRODUCTS_DIR)/libPods-box-ios-sdk.a')
File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
end
end
end
end
我的应用程序使用供应商静态库,它不喜欢“-all_load”链接器标志。如果我使用它,它会抛出重复的错误。
我现在遇到的问题是我还需要使用新的 box sdk。 SDK 的 podspec 有以下内容。
s.xcconfig = { "OTHER_LDFLAGS" => "-ObjC -all_load" }
因此,构建失败,供应商库中有重复的符号。
我在网上看到,我可以通过仅在需要 -ObjC -all_load
的库上使用 -force_load
来避免陷入这种情况。我无法将其用作解决方案,因为我无法控制 BOX podspec
有什么方法可以覆盖我的应用程序中的任何这些吗?如果有任何帮助,我将不胜感激。
在与此斗争了几个小时之后,我想出了如何完成这项工作。将其张贴在这里,以便它可以帮助遇到类似问题的人。我在 Podfile 中添加了下面的 post_install 钩子,结果它起作用了!!
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == "Pods"
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
new_xcconfig = xcconfig.gsub("-ObjC -all_load",'-force_load $(BUILT_PRODUCTS_DIR)/libPods-box-ios-sdk.a')
File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
end
end
end
end