web-dev-qa-db-de.com

Swift 2 / iOS 9 - libz.dylib nicht gefunden

Ich verwende in meinem neuen Swift 2.0-Projekt einige externe Codes von Google, für die in früheren Versionen "libz.dylib" erforderlich war. Nach dem Update auf den neuen XCode/das neue SDK.

XCode kann jetzt die libz.dylib nicht importieren und löst einige Fehler aus

Undefinierte Symbole für die Architektur i386: "_deflate", referenziert von: + [GAICompressionUtil gai_dataByCompressingBytes: length: compressionLevel: mode:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "_deflateEnd", referenziert von: gai_dataByByByByte: [ mode:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "deflateInit2", referenziert von: + [GAICompressionUtil gai_dataByCompressingBytes: length: compressionLevel: mode:] in libGoogleAnalyticsServices.a (GAicompressionUtilate2) , referenziert von: + [GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "_inflateEnd", referenziert von: + [GAICompressionUtil gai_dataBytes: GAICompressionUtil: inflateInit2 ", referenziert von: + [GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) l d: Symbol (e) für Architektur i386 nicht gefunden clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (Aufruf mit -v)

Wenn ich mir die verfügbaren Pakete in den "Build Phase" -Einstellungen ansehe, finde ich "libz.tbd", das anscheinend den Ersatz für die libz.dylib darstellt. Beim Importieren dieser Bibliothek bleibt der Linker-Fehler derselbe, aber ich erhalte diese zusätzliche Warnung:

warnung: Überspringen der Datei '/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd' (unerwarteter Dateityp 'text' in Build-Phase für Frameworks und Bibliotheken)

Irgendeine Idee, was zu tun ist?

52
Daniel K.

Ich hatte das gleiche problem Ich habe einen Weg gefunden.

  1. Gehen Sie zu Bauphasen> Binary mit Librairies verknüpfen> +> Andere hinzufügen
  2. Sobald Sie im Dateiauswahlfenster sind, drücken Sie "CMD" + Umschalt + G (Gehe zu Ordner) und geben Sie/usr/lib/ein.
  3. In/usr/lib können Sie Folgendes hinzufügen: libz.dylib und mehr ...
  4. Kompilieren und Spaß haben
112
Guitz

libz.dylib befindet sich jetzt unter libz.tbd Zitat aus dem Apple Entwicklerforum :

Für Neugierige sind die .tbd-Dateien neue "textbasierte Stub-Bibliotheken", die eine wesentlich kompaktere Version der Stub-Bibliotheken für das SDK bereitstellen und dazu beitragen, die Download-Größe erheblich zu reduzieren.

Hoffentlich wird bald mehr Dokumentation kommen.

edit

Zur Verdeutlichung werde ich Guitz Antwort mit dem aktualisierten Inhalt zitieren

  1. Gehen Sie zu Bauphasen> Binary mit Librairies verknüpfen> +> Andere hinzufügen
  2. Sobald Sie im Dateiauswahlfenster sind, drücken Sie "CMD" + Umschalt + G (Gehe zu Ordner) und geben Sie/usr/lib/ein.
  3. Aus/user/lib können Sie hinzufügen: libz.tbd und mehr ...
  4. Kompilieren und Spaß haben
82
helgetan

Entfernen Sie alle dynamischen Bibliotheken (dylib) aus der Verknüpfungsphase mit Binärdateien. Es wird diese Bibliotheken für sich finden.

8
AZ0

Ich habe dieses Problem in object-c project.ios9.1, xcode7.1

1.Gehen Sie zu Target> Build Phases> Binary mit Librairies verknüpfen> +

2.Wählen Sie libz.tbd und fügen Sie es hinzu

Es hat bei mir funktioniert

2
iengchen

libz.dylib ist die dynamische Bibliothek für Zlib. Sie können Zlib von hier aus installieren http://zlib.net/

1

Sie können libz.1.dylib von folgendem Speicherort hinzufügen:/usr/lib /

  1. Gehen Sie zu Bauphasen> Binary mit Librairies verknüpfen> +> Andere hinzufügen
  2. Sobald Sie im Dateiauswahlfenster sind, drücken Sie CMD + Umschalt + G (Gehe zum Ordner) und geben Sie/usr/lib/ein.
  3. In/user/lib können Sie Folgendes hinzufügen: libz.1.dylib

Es hat bei mir funktioniert.

0
Vin

Sie können auch das lybz.dylib from "Other Linker Flags" in Build Settings durch Hinzufügen des Arguments -lz.

Ich musste dies tun, weil die .dylib-Bibliothek bei der Bereitstellung meiner App für unsere Tester mit der Methode, mit der Sie auf die Bibliothek aus/usr/lib verweisen, nicht aufgelöst werden konnte und die App beim Start abstürzte.

0
tentmaking