75 Stimmen

Warnungen in Xcode von Frameworks deaktivieren

Ich habe das Projekt three20 in mein Projekt importiert, und als ich auf Xcode 4.2 mit iOS 5 aktualisiert habe, erschienen eine Reihe von Warnungen im Projekt.

Ich kümmere mich nicht um sie, aber sie machen eine Menge Lärm, und es ist leicht, alle echten Warnungen in meinem Projekt jetzt zu verpassen. Gibt es eine Möglichkeit, Warnungen für diese spezifischen Bibliotheken zu deaktivieren?

162voto

iHunter Punkte 6175
  1. Wenn Ihre Bibliotheken von Drittanbietern als separates Ziel hinzugefügt werden, können Sie die Inhibit all warnings für dieses spezifische Ziel, um alle Warnungen zu deaktivieren.

  2. Wenn Ihre Bibliothek als einfache Quelldateien zu Ihrem aktuellen Ziel hinzugefügt wird, können Sie die -w Compiler-Flag für einzelne Quellen, um alle darin enthaltenen Warnungen auszuschalten. Sie müssen zu Build phases Ihrer Zielkonfiguration und setzen Sie dieses Flag für jede Quelldatei in Compile Sources Abschnitt, indem Sie auf jede Datei doppelklicken und Folgendes eingeben -w Flagge. enter image description here

20voto

Wenn Sie Pods verwenden, können Sie dies zu Ihrem Podfile hinzufügen, um die Protokollierung von Warnungen zu verhindern:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = "YES"
    end
  end
end

8voto

Vladimir Grigorov Punkte 10413

Wenn die Warnungen von den eingeschlossenen Bibliotheks- oder Framework-Header-Dateien stammen, können Sie die Include-Anweisungen wie folgt einschließen:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability-completeness"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#pragma clang diagnostic pop

Setzen Sie Ihre Warnflagge in die zweite Zeile oben. Sie können die Warnflaggen hier nachschlagen: https://clang.llvm.org/docs/DiagnosticsReference.html

0voto

NSExceptional Punkte 1248

Wenn die Warnungen von einem Framework stammen (bei mir war es Rollbar), das mit Carthage hinzugefügt wurde:

  1. Fügen Sie ein neues Framework-Ziel (z. B. RollbarWrapper) zu Ihrem Projekt hinzu und betten Sie es in Ihr Anwendungsziel ein

enter image description here

  1. Ziehen Sie das erstellte Framework von Carthage/Build/<platform> in Xcode und fügen Sie es dem gerade erstellten Dummy/Wrapper-Framework (RollbarWrapper) hinzu

enter image description here

  1. Vergewissern Sie sich, dass das Framework (Rollbar) dem Abschnitt "Frameworks und Bibliotheken" des Ziels (RollbarWrapper) hinzugefügt wurde und auf "Nicht einbetten" gesetzt ist.

enter image description here

  1. Gehen Sie zu den Build-Einstellungen für das Dummy/Wrapper-Framework (RollbarWrapper) und setzen Sie "Inhibit All Warnings" auf Ja

  2. Als Nächstes fügen Sie das Framework (Rollbar) zum Abschnitt Frameworks, Libraries, & Embedded Content Ihres Anwendungsziels hinzu und setzen es auf Do Not Embed

enter image description here

  1. Schließlich führen Sie für das Anwendungsziel die normale Karthago-Einrichtung (d.h. erstellen Sie eine neue Run-Script-Phase zur Ausführung der copy-frameworks Skript zum Kopieren des Rollbar-Frameworks)

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X