Подтвердить что ты не робот

Как я могу отключить предупреждения от всех контейнеров, кроме локальных контейнеров?

Я предполагаю что-то в строках

post_install do |installer|

  # Debug symbols
  installer.pod_project.targets.each do |target|
    target.build_configurations.each do |config|
      if ? == ?
        config.build_settings['?'] = '?'
      end
    end
  end

end
4b9b3361

Ответ 1

Сегодня я столкнулся с подобной проблемой и выяснил два способа достижения этой цели в зависимости от сложности ваших зависимостей.

Первый способ прост и должен работать, если ваши локальные пакеты разработки находятся в вашем основном файле подкачки и не вложены в другую зависимость. В основном запретите все предупреждения, как обычно, но укажите false на каждом локальном контейнере:

inhibit_all_warnings!

pod 'LocalPod', :path => '../LocalPod', :inhibit_warnings => false
pod 'ThirdPartyPod',

Второй способ, который является более всеобъемлющим и должен работать для сложных вложенных зависимостей, заключается в создании белого списка ваших локальных контейнеров, а затем во время пост-инсталляции запрещать предупреждения любого контейнера, который не является частью белого списка:

$local_pods = Hash[
  'LocalPod0' => true,
  'LocalPod1' => true,
  'LocalPod2' => true,
]

def inhibit_warnings_for_third_party_pods(target, build_settings)
  return if $local_pods[target.name]
  if build_settings["OTHER_SWIFT_FLAGS"].nil?
    build_settings["OTHER_SWIFT_FLAGS"] = "-suppress-warnings"
  else
    build_settings["OTHER_SWIFT_FLAGS"] += " -suppress-warnings"
  end
  build_settings["GCC_WARN_INHIBIT_ALL_WARNINGS"] = "YES"
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      inhibit_warnings_for_third_party_pods(target, config.build_settings)
    end
  end
end

Теперь это будет только тормозить зависимости сторонних сторон, но сохраняйте предупреждения на любых локальных контейнерах.

Ответ 2

Подфайл >

Пока ignore_all_warnings - это предложение all или none, вы можете :inhibit_warnings => true на любом отдельном модуле в подфайле.

# Disable warnings for each remote Pod
pod 'TGPControls', :inhibit_warnings => true

# Do not disable warnings for your own development Pod
pod 'Name', :path => '~/code/Pods/'