2016-07-20 10 views
4

Wir verwenden ein Push-Notification-Framework von Drittanbietern, das nicht für x86_64 kompiliert wurde, was bedeutet, dass wir immer, wenn wir für den Simulator bauen, eine Build-Warnung erhalten. Da wir versuchen, Warnungen als Fehler zu behandeln, ist dies nicht möglich.Wie nur ein Framework beim Erstellen für Gerät, nicht iOS Simulator?

Ich möchte nur dieses Framework bei der Erstellung von Geräten enthalten. Ich werde dann nur den Code kompilieren, der es auch auf Geräten verwendet.

Ist es erreichbar?

Antwort

4
  1. Machen Sie Ihren Rahmen optional nicht required in Build-Phasen> Link Binary mit Bibliotheken
  2. In Build-Einstellungen> Verknüpfung in "Other Linker Flags" Debug-Flag erstellen für Option Any iOS Simulator SDK und addieren Sie Wert -ObjC -weak_framework YourFrameworkName.
  3. Und in Code-Check für Build-Ziel wie folgt #if TARGET_IPHONE_SIMULATOR.

enter image description here

+0

Danke - was ist der Rahmen Name wahrscheinlich zu sein? Ich habe den Dateinamen, aber ich bin mir nicht sicher, ob es einen Namen hat. Es ist 'libX.a' und' a_SDK.h'. Ich habe ein paar offensichtliche versucht und ich sehe immer noch die Warnungen. – Luke

+0

Ah, es sieht so aus, als ob es gefunden wurde, aber jetzt bekomme ich einen Linker-Fehler, wenn ich zum Simulator baue. Ich habe sichergestellt, dass der Code, der mit dieser Bibliothek interagiert, auskommentiert ist. – Luke

+0

Ich habe möglicherweise andere Lösung gefunden, ich habe einen Screenshot zu meiner Antwort hinzugefügt. Stellen Sie sicher, dass es wie folgt aussieht und ersetzen Sie Flurry-7.6.0 durch den Namen Ihres Frameworks (beachten Sie, dass "-l" vorangestellt ist). Wenn Sie 'library not found' erhalten, versuchen Sie' -lYourFramework' durch '/ path/to/framework.a' zu ersetzen – njuri