如何防止 '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 配置,这是一个常见的解决方案。
'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 配置,这是一个常见的解决方案。