Ich bin heute auf ein ähnliches Problem gestoßen und habe je nach Komplexität der Abhängigkeiten zwei Wege gefunden, dies zu erreichen.
Der erste Weg ist einfach und sollte funktionieren, wenn sich Ihre lokalen Entwicklungs-Pods in Ihrer Haupt-Pod-Datei befinden und nicht in einer anderen Abhängigkeit verschachtelt sind. Grundsätzlich hemmen alle Warnungen wie gewohnt, aber geben Sie falsch auf jedem lokalen pod:
inhibit_all_warnings!
pod 'LocalPod', :path => '../LocalPod', :inhibit_warnings => false
pod 'ThirdPartyPod',
Die zweite Möglichkeit, die umfassender ist und sollte für komplexe verschachtelte Abhängigkeiten arbeiten, ist durch eine weiße Liste Ihrer lokalen Schoten zu schaffen und dann während Post installiert, hemmt die Warnungen jeder Schote, die nicht Teil der weißen Liste ist:
$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
Dies wird nun nur 3rd-Party-Abhängigkeiten hemmt aber die Warnungen auf allen lokalen Schoten halten.
Ich bin mir dieser Option bewusst, und das ist nicht das, wonach ich suche. Ich möchte dies dynamisch tun, da ich nicht jede Abhängigkeit und Unterabhängigkeit manuell auflisten möchte, um auch diese Warnungen zum Schweigen zu bringen. – hfossli
Außerdem müsste ich über jede Abhängigkeit wissen (die sich ändern kann, wenn ich ein Pod-Update mache). Ich muss ein Podfile schreiben, das alles weiß. – hfossli
Rätsel, in der Tat. Im Idealfall hätten Pods überhaupt keine Warnungen. Haben Sie Beispiele für solche Warnungen? Vielleicht können wir einige dieser Pods pull-fix-push machen, vorausgesetzt, sie sind auf Github? – SwiftArchitect