如何防止 'pod install' 覆盖 XCode 'BUILD_LIBRARY_FOR_DISTRIBUTION' 设置?

How to prevent 'pod install' from overriding XCode 'BUILD_LIBRARY_FOR_DISTRIBUTION' setting?

'pod install' 覆盖 XCode IDE 的以下 pod 设置,如果设置:

BUILD_LIBRARY_FOR_DISTRIBUTION=否

或者更准确地说 - 它只是删除它,这意味着它将默认为“是”(对于每个库)。 这会终止我们的构建,因为我们有一些库(如 OpenCombine、BetterSegment)之后无法构建,因为构建警告随后被视为错误。

唯一的解决方法是在 XCode 之后对每个 有问题的库再次进行此设置

一种解决方法(直到存在针对 cocoapods 的标志或错误修复)是在您的 Podfile 中添加以下内容:

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|   
    config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "NO"
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end

  installer.pods_project.targets.each do |t|
    t.build_configurations.each do |config|
      config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "NO"
     end
  end
end

这会添加一个 post 构建挂钩以在库和全局 pod 项目级别再次启用此设置。

顺便说一句,如果 'pod install' 搞乱了 XCode pod 配置,这是一个常见的解决方案。